https://dev.kronoz.win/r/marzneshin.git
| 1 |
ff900b8 |
Mrdn |
2y ago |
import { useState } from "react"; |
| 2 |
ff900b8 |
Mrdn |
2y ago |
import { NodeType, useNodesSettingsMutation, useNodesSettingsQuery } from "../.."; |
| 3 |
ff900b8 |
Mrdn |
2y ago |
|
| 4 |
ff900b8 |
Mrdn |
2y ago |
export const useNodesSettings = (entity: NodeType) => { |
| 5 |
ff900b8 |
Mrdn |
2y ago |
const { data } = useNodesSettingsQuery(entity); |
| 6 |
ff900b8 |
Mrdn |
2y ago |
const [config, setConfig] = useState<any>(data) |
| 7 |
ff900b8 |
Mrdn |
2y ago |
const [payloadValidity, setPayloadValidity] = useState<boolean>(true) |
| 8 |
ff900b8 |
Mrdn |
2y ago |
const mutate = useNodesSettingsMutation(); |
| 9 |
ff900b8 |
Mrdn |
2y ago |
|
| 10 |
ff900b8 |
Mrdn |
2y ago |
const handleEditorValidation = (markers: any[]) => { |
| 11 |
ff900b8 |
Mrdn |
2y ago |
setPayloadValidity(!markers.length) |
| 12 |
ff900b8 |
Mrdn |
2y ago |
} |
| 13 |
ff900b8 |
Mrdn |
2y ago |
|
| 14 |
ff900b8 |
Mrdn |
2y ago |
const handleConfigSave = () => { |
| 15 |
ff900b8 |
Mrdn |
2y ago |
mutate.mutate({ node: entity, config }) |
| 16 |
ff900b8 |
Mrdn |
2y ago |
} |
| 17 |
ff900b8 |
Mrdn |
2y ago |
|
| 18 |
ff900b8 |
Mrdn |
2y ago |
const handleConfigChange = (newConfig: string | undefined) => { |
| 19 |
ff900b8 |
Mrdn |
2y ago |
if (newConfig) { |
| 20 |
ff900b8 |
Mrdn |
2y ago |
try { |
| 21 |
ff900b8 |
Mrdn |
2y ago |
const parsedConfig = JSON.parse(newConfig); |
| 22 |
ff900b8 |
Mrdn |
2y ago |
setConfig(parsedConfig); |
| 23 |
ff900b8 |
Mrdn |
2y ago |
} catch (error) { |
| 24 |
ff900b8 |
Mrdn |
2y ago |
setPayloadValidity(false) |
| 25 |
ff900b8 |
Mrdn |
2y ago |
} |
| 26 |
ff900b8 |
Mrdn |
2y ago |
} |
| 27 |
ff900b8 |
Mrdn |
2y ago |
}; |
| 28 |
ff900b8 |
Mrdn |
2y ago |
|
| 29 |
ff900b8 |
Mrdn |
2y ago |
return { payloadValidity, data, handleConfigSave, handleConfigChange, handleEditorValidation } |
| 30 |
ff900b8 |
Mrdn |
2y ago |
} |