@intlayer/design-system 4.0.3 → 4.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +34 -43
- package/dist/components/Auth/AuthModal/index.cjs +1 -1
- package/dist/components/Auth/AuthModal/index.mjs +1 -1
- package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs +2 -1
- package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs.map +1 -1
- package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs +2 -1
- package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs.map +1 -1
- package/dist/components/Auth/useAuth/index.cjs +8 -4
- package/dist/components/Auth/useAuth/index.cjs.map +1 -1
- package/dist/components/Auth/useAuth/index.d.ts +3 -1
- package/dist/components/Auth/useAuth/index.d.ts.map +1 -1
- package/dist/components/Auth/useAuth/index.mjs +8 -4
- package/dist/components/Auth/useAuth/index.mjs.map +1 -1
- package/dist/components/Auth/useAuth/useCSRF.cjs +6 -3
- package/dist/components/Auth/useAuth/useCSRF.cjs.map +1 -1
- package/dist/components/Auth/useAuth/useCSRF.d.ts +2 -1
- package/dist/components/Auth/useAuth/useCSRF.d.ts.map +1 -1
- package/dist/components/Auth/useAuth/useCSRF.mjs +5 -2
- package/dist/components/Auth/useAuth/useCSRF.mjs.map +1 -1
- package/dist/components/Auth/useAuth/useOAuth2.cjs +6 -5
- package/dist/components/Auth/useAuth/useOAuth2.cjs.map +1 -1
- package/dist/components/Auth/useAuth/useOAuth2.d.ts +2 -1
- package/dist/components/Auth/useAuth/useOAuth2.d.ts.map +1 -1
- package/dist/components/Auth/useAuth/useOAuth2.mjs +5 -4
- package/dist/components/Auth/useAuth/useOAuth2.mjs.map +1 -1
- package/dist/components/Auth/useAuth/useSession.cjs +6 -3
- package/dist/components/Auth/useAuth/useSession.cjs.map +1 -1
- package/dist/components/Auth/useAuth/useSession.d.ts +2 -1
- package/dist/components/Auth/useAuth/useSession.d.ts.map +1 -1
- package/dist/components/Auth/useAuth/useSession.mjs +6 -3
- package/dist/components/Auth/useAuth/useSession.mjs.map +1 -1
- package/dist/components/Auth/useUser/index.cjs +1 -1
- package/dist/components/Auth/useUser/index.mjs +1 -1
- package/dist/components/Button/Button.cjs +9 -9
- package/dist/components/Button/Button.cjs.map +1 -1
- package/dist/components/Button/Button.mjs +9 -9
- package/dist/components/Button/Button.mjs.map +1 -1
- package/dist/components/Container/index.d.ts +2 -2
- package/dist/components/DictionaryEditor/DictionaryEditor.cjs +5 -4
- package/dist/components/DictionaryEditor/DictionaryEditor.cjs.map +1 -1
- package/dist/components/DictionaryEditor/DictionaryEditor.d.ts +1 -0
- package/dist/components/DictionaryEditor/DictionaryEditor.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/DictionaryEditor.mjs +5 -4
- package/dist/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs +2 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs +2 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.cjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs +2 -1
- package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs +2 -1
- package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs +3 -3
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +2 -2
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.cjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/index.cjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/index.mjs +1 -1
- package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs +29 -12
- package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs.map +1 -1
- package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts +1 -0
- package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs +31 -14
- package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs.map +1 -1
- package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs +32 -0
- package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs.map +1 -1
- package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.d.ts +4 -0
- package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs +32 -0
- package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +5 -3
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +1 -0
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +5 -3
- package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +4 -2
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +4 -2
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +45 -14
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts +1 -0
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +48 -17
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs +32 -0
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +4 -0
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +32 -0
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +7 -15
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +1 -0
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +8 -16
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs +8 -5
- package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/EditorView/EditorView.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs +7 -4
- package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs +2 -2
- package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs +2 -2
- package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/JSONEditor.cjs +1 -1
- package/dist/components/DictionaryFieldEditor/JSONEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/JSONEditor.mjs +1 -1
- package/dist/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +6 -5
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +2 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeEditor.cjs +1 -9
- package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeEditor.mjs +2 -10
- package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs +2 -1
- package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeTypeSelector.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs +2 -1
- package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +51 -22
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts +1 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +52 -23
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +32 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +4 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +32 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs +2 -2
- package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs +2 -2
- package/dist/components/EditableField/EditableFieldLayout.cjs +8 -4
- package/dist/components/EditableField/EditableFieldLayout.cjs.map +1 -1
- package/dist/components/EditableField/EditableFieldLayout.d.ts.map +1 -1
- package/dist/components/EditableField/EditableFieldLayout.mjs +8 -4
- package/dist/components/EditableField/EditableFieldLayout.mjs.map +1 -1
- package/dist/components/IDE/CodeContext.cjs +2 -2
- package/dist/components/IDE/CodeContext.mjs +2 -2
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +4 -4
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +4 -4
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs +2 -2
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs +2 -2
- package/dist/components/Modal/Modal.cjs +11 -7
- package/dist/components/Modal/Modal.cjs.map +1 -1
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.mjs +11 -7
- package/dist/components/Modal/Modal.mjs.map +1 -1
- package/dist/components/Navbar/MobileNavbar.cjs +2 -2
- package/dist/components/Navbar/MobileNavbar.mjs +2 -2
- package/dist/components/Navbar/index.cjs +2 -2
- package/dist/components/Navbar/index.mjs +2 -2
- package/dist/components/RightDrawer/RightDrawer.cjs +32 -15
- package/dist/components/RightDrawer/RightDrawer.cjs.map +1 -1
- package/dist/components/RightDrawer/RightDrawer.d.ts.map +1 -1
- package/dist/components/RightDrawer/RightDrawer.mjs +32 -15
- package/dist/components/RightDrawer/RightDrawer.mjs.map +1 -1
- package/dist/components/SwitchSelector/index.cjs +2 -2
- package/dist/components/SwitchSelector/index.mjs +2 -2
- package/dist/components/TabSelector/TabSelector.cjs +2 -2
- package/dist/components/TabSelector/TabSelector.mjs +2 -2
- package/dist/hooks/index.cjs +1 -0
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.mjs +3 -2
- package/dist/hooks/intlayerAPIHooks.cjs +15 -1
- package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
- package/dist/hooks/intlayerAPIHooks.d.ts +53 -49
- package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
- package/dist/hooks/intlayerAPIHooks.mjs +16 -2
- package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
- package/dist/hooks/useAsync/useAsync.cjs +14 -0
- package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
- package/dist/hooks/useAsync/useAsync.d.ts.map +1 -1
- package/dist/hooks/useAsync/useAsync.mjs +14 -0
- package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
- package/dist/hooks/useGetAllDictionaries.cjs +3 -2
- package/dist/hooks/useGetAllDictionaries.cjs.map +1 -1
- package/dist/hooks/useGetAllDictionaries.d.ts +2 -2
- package/dist/hooks/useGetAllDictionaries.d.ts.map +1 -1
- package/dist/hooks/useGetAllDictionaries.mjs +3 -2
- package/dist/hooks/useGetAllDictionaries.mjs.map +1 -1
- package/dist/hooks/useIntlayerAPI.cjs +10 -7
- package/dist/hooks/useIntlayerAPI.cjs.map +1 -1
- package/dist/hooks/useIntlayerAPI.d.ts +11 -2
- package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
- package/dist/hooks/useIntlayerAPI.mjs +10 -7
- package/dist/hooks/useIntlayerAPI.mjs.map +1 -1
- package/dist/hooks/usePersistedStore.cjs +25 -18
- package/dist/hooks/usePersistedStore.cjs.map +1 -1
- package/dist/hooks/usePersistedStore.d.ts +2 -2
- package/dist/hooks/usePersistedStore.d.ts.map +1 -1
- package/dist/hooks/usePersistedStore.mjs +26 -19
- package/dist/hooks/usePersistedStore.mjs.map +1 -1
- package/dist/index-B-VAyQ9R.js +673 -0
- package/dist/index-B-VAyQ9R.js.map +1 -0
- package/dist/index-B-adg6xa.js +206 -0
- package/dist/index-B-adg6xa.js.map +1 -0
- package/dist/index-B1nU1-65.cjs +690 -0
- package/dist/index-B1nU1-65.cjs.map +1 -0
- package/dist/index-BIV0x_z2.js +206 -0
- package/dist/index-BIV0x_z2.js.map +1 -0
- package/dist/index-BIyA5LAs.js +691 -0
- package/dist/index-BIyA5LAs.js.map +1 -0
- package/dist/index-BNH9wXVj.cjs +205 -0
- package/dist/index-BNH9wXVj.cjs.map +1 -0
- package/dist/index-BqZwP4Lr.js +691 -0
- package/dist/index-BqZwP4Lr.js.map +1 -0
- package/dist/index-Buecpjbh.cjs +690 -0
- package/dist/index-Buecpjbh.cjs.map +1 -0
- package/dist/index-CDEJjmId.js +694 -0
- package/dist/index-CDEJjmId.js.map +1 -0
- package/dist/index-CTAyk6RY.cjs +693 -0
- package/dist/index-CTAyk6RY.cjs.map +1 -0
- package/dist/index-CVC2sfEj.js +693 -0
- package/dist/index-CVC2sfEj.js.map +1 -0
- package/dist/index-CVz0RdK6.js +691 -0
- package/dist/index-CVz0RdK6.js.map +1 -0
- package/dist/index-CjF2ksU7.cjs +693 -0
- package/dist/index-CjF2ksU7.cjs.map +1 -0
- package/dist/index-CuQs5759.cjs +692 -0
- package/dist/index-CuQs5759.cjs.map +1 -0
- package/dist/index-D69JRZcQ.js +206 -0
- package/dist/index-D69JRZcQ.js.map +1 -0
- package/dist/index-DAsui9u9.cjs +205 -0
- package/dist/index-DAsui9u9.cjs.map +1 -0
- package/dist/index-D_MDocy7.cjs +690 -0
- package/dist/index-D_MDocy7.cjs.map +1 -0
- package/dist/index-Djo2Jnua.cjs +693 -0
- package/dist/index-Djo2Jnua.cjs.map +1 -0
- package/dist/index-LFTthFne.js +694 -0
- package/dist/index-LFTthFne.js.map +1 -0
- package/dist/index-SOIahRpS.cjs +205 -0
- package/dist/index-SOIahRpS.cjs.map +1 -0
- package/dist/index-T-TjVQoD.js +671 -0
- package/dist/index-T-TjVQoD.js.map +1 -0
- package/dist/index-f8_VC6c8.cjs +672 -0
- package/dist/index-f8_VC6c8.cjs.map +1 -0
- package/dist/index-llGIfxqV.cjs +670 -0
- package/dist/index-llGIfxqV.cjs.map +1 -0
- package/dist/index-xZoGTokf.js +694 -0
- package/dist/index-xZoGTokf.js.map +1 -0
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.mjs.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/useGetAllDictionaries-B1sqs2IB.cjs +34 -0
- package/dist/useGetAllDictionaries-B1sqs2IB.cjs.map +1 -0
- package/dist/useGetAllDictionaries-BbH8vTkY.js +35 -0
- package/dist/useGetAllDictionaries-BbH8vTkY.js.map +1 -0
- package/dist/useGetAllDictionaries-Bgkytpa2.cjs +34 -0
- package/dist/useGetAllDictionaries-Bgkytpa2.cjs.map +1 -0
- package/dist/useGetAllDictionaries-D8ma3h41.cjs +33 -0
- package/dist/useGetAllDictionaries-D8ma3h41.cjs.map +1 -0
- package/dist/useGetAllDictionaries-DHgHEbD5.js +34 -0
- package/dist/useGetAllDictionaries-DHgHEbD5.js.map +1 -0
- package/dist/useGetAllDictionaries-DUzm0rIa.js +35 -0
- package/dist/useGetAllDictionaries-DUzm0rIa.js.map +1 -0
- package/package.json +21 -16
package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictionariesSelector.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config';\nimport { useFocusDictionary } from '@intlayer/editor-react';\nimport { useMemo, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { useGetAllDictionaries } from '../../../hooks';\nimport { Loader } from '../../Loader';\nimport { DictionaryFieldEditor } from '../DictionaryFieldEditor';\nimport { dictionariesSelectorContent } from './dictionariesSelector.content';\n\ntype DictionariesSelectorProps = {\n onClickDictionaryList: () => void;\n isDarkMode?: boolean;\n availableLocales: Locales[];\n};\n\nexport const DictionariesSelector: FC<DictionariesSelectorProps> = ({\n onClickDictionaryList,\n isDarkMode,\n availableLocales,\n}) => {\n const { online, locale, isLoading } = useGetAllDictionaries();\n const { focusedContent } = useFocusDictionary();\n const { noDictionaryMessage, dictionaryNotFoundMessage } = useDictionary(\n dictionariesSelectorContent\n );\n const dictionary = useMemo(\n () =>\n focusedContent?.dictionaryKey\n ? (online?.[focusedContent?.dictionaryKey] ??\n locale?.[focusedContent?.dictionaryKey])\n : null,\n [online, locale, focusedContent?.dictionaryKey]\n );\n\n if (isLoading) return <Loader />;\n\n if (!focusedContent?.dictionaryKey) return noDictionaryMessage;\n\n if (!dictionary) return dictionaryNotFoundMessage;\n\n return (\n <DictionaryFieldEditor\n dictionary={dictionary}\n onClickDictionaryList={onClickDictionaryList}\n isDarkMode={isDarkMode}\n availableLocales={availableLocales}\n />\n );\n};\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DictionariesSelector.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config';\nimport { useFocusDictionary } from '@intlayer/editor-react';\nimport { useMemo, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { useGetAllDictionaries } from '../../../hooks';\nimport { Loader } from '../../Loader';\nimport { DictionaryFieldEditor } from '../DictionaryFieldEditor';\nimport { dictionariesSelectorContent } from './dictionariesSelector.content';\n\ntype DictionariesSelectorProps = {\n onClickDictionaryList: () => void;\n isDarkMode?: boolean;\n availableLocales: Locales[];\n mode: 'local' | 'remote';\n};\n\nexport const DictionariesSelector: FC<DictionariesSelectorProps> = ({\n onClickDictionaryList,\n isDarkMode,\n availableLocales,\n mode,\n}) => {\n const { online, locale, isLoading } = useGetAllDictionaries();\n const { focusedContent } = useFocusDictionary();\n const { noDictionaryMessage, dictionaryNotFoundMessage } = useDictionary(\n dictionariesSelectorContent\n );\n const dictionary = useMemo(\n () =>\n focusedContent?.dictionaryKey\n ? (online?.[focusedContent?.dictionaryKey] ??\n locale?.[focusedContent?.dictionaryKey])\n : null,\n [online, locale, focusedContent?.dictionaryKey]\n );\n\n if (isLoading) return <Loader />;\n\n if (!focusedContent?.dictionaryKey) return noDictionaryMessage;\n\n if (!dictionary) return dictionaryNotFoundMessage;\n\n return (\n <DictionaryFieldEditor\n dictionary={dictionary}\n onClickDictionaryList={onClickDictionaryList}\n isDarkMode={isDarkMode}\n availableLocales={availableLocales}\n mode={mode}\n />\n );\n};\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;AAmBO,MAAM,uBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,UAAA,IAAc,sBAAsB;AACtD,QAAA,EAAE,eAAe,IAAI,mBAAmB;AACxC,QAAA,EAAE,qBAAqB,0BAAA,IAA8B;AAAA,IACzD;AAAA,EACF;AACA,QAAM,aAAa;AAAA,IACjB,MACE,gBAAgB,gBACX,SAAS,gBAAgB,aAAa,KACvC,SAAS,gBAAgB,aAAa,IACtC;AAAA,IACN,CAAC,QAAQ,QAAQ,gBAAgB,aAAa;AAAA,EAChD;AAEI,MAAA,UAAkB,QAAAA,sCAAC,QAAO,CAAA,CAAA;AAE1B,MAAA,CAAC,gBAAgB,cAAsB,QAAA;AAEvC,MAAA,CAAC,WAAmB,QAAA;AAGtB,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
|
package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs
CHANGED
|
@@ -4,7 +4,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
4
4
|
const jsxRuntime = require("../../../jsx-runtime-CgFM7lM3.cjs");
|
|
5
5
|
const reactIntlayer = require("react-intlayer");
|
|
6
6
|
const hooks_intlayerAPIHooks = require("../../../hooks/intlayerAPIHooks.cjs");
|
|
7
|
-
require("../../../index-
|
|
7
|
+
require("../../../index-CuQs5759.cjs");
|
|
8
|
+
require("@intlayer/config/client");
|
|
8
9
|
require("../../Button/Button.cjs");
|
|
9
10
|
require("../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.cjs");
|
|
10
11
|
const components_Form_FormBase = require("../../Form/FormBase.cjs");
|
|
@@ -17,7 +18,7 @@ require("../../Auth/SignUpForm/useSignUpSchema.content.cjs");
|
|
|
17
18
|
require("react");
|
|
18
19
|
require("../../../hooks/useScrollBlockage/useScrollBlockageStore.cjs");
|
|
19
20
|
require("../../../hooks/useAsync/useAsyncStateStore.cjs");
|
|
20
|
-
require("@intlayer/
|
|
21
|
+
require("@intlayer/editor-react");
|
|
21
22
|
require("deepmerge");
|
|
22
23
|
const components_Auth_useAuth_index = require("../../Auth/useAuth/index.cjs");
|
|
23
24
|
require("../../Auth/ChangePasswordForm/changePasswordForm.content.cjs");
|
|
@@ -27,6 +28,7 @@ require("../../Auth/ResetPasswordForm/useResetPasswordSchema.content.cjs");
|
|
|
27
28
|
require("../../Modal/Modal.cjs");
|
|
28
29
|
require("clsx");
|
|
29
30
|
require("tailwind-merge");
|
|
31
|
+
require("@intlayer/api");
|
|
30
32
|
const components_Select_Multiselect = require("../../Select/Multiselect.cjs");
|
|
31
33
|
require("../../Select/Select.cjs");
|
|
32
34
|
const components_DictionaryFieldEditor_DictionaryCreationForm_dictionaryCreationForm_content = require("./dictionaryCreationForm.content.cjs");
|
package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictionaryCreationForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAddDictionary,\n useGetProjects,\n} from '../../../hooks/intlayerAPIHooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { MultiSelect } from '../../Select';\nimport { dictionaryFormContent } from './dictionaryCreationForm.content';\nimport {\n useDictionarySchema,\n type DictionaryFormData,\n} from './useDictionaryFormSchema';\n\nexport const DictionaryCreationForm: FC = () => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { addDictionary } = useAddDictionary();\n const { data: projects } = useGetProjects();\n const DictionarySchema = useDictionarySchema(String(project?._id));\n const { form, isSubmitting } = useForm(DictionarySchema);\n const { keyInput, createDictionaryButton, projectInput } = useDictionary(\n dictionaryFormContent\n );\n\n const onSubmitSuccess = async (data: DictionaryFormData) => {\n await addDictionary(data);\n };\n\n return (\n <Form\n schema={DictionarySchema}\n onSubmitSuccess={onSubmitSuccess}\n className=\"w-full max-w-[400px]\"\n {...form}\n >\n <Form.Input\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.placeholder}\n isRequired\n />\n\n <Form.MultiSelect name=\"projectIds\" label={projectInput.label}>\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.Button\n className=\"ml-auto mt-12\"\n type=\"submit\"\n color=\"text\"\n isLoading={isSubmitting}\n label={createDictionaryButton.ariaLabel}\n >\n {createDictionaryButton.text}\n </Form.Button>\n </Form>\n );\n};\n"],"names":["useAuth","useAddDictionary","useGetProjects","useDictionarySchema","useForm","useDictionary","dictionaryFormContent","jsxs","Form","jsx","MultiSelect","project"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DictionaryCreationForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAddDictionary,\n useGetProjects,\n} from '../../../hooks/intlayerAPIHooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { MultiSelect } from '../../Select';\nimport { dictionaryFormContent } from './dictionaryCreationForm.content';\nimport {\n useDictionarySchema,\n type DictionaryFormData,\n} from './useDictionaryFormSchema';\n\nexport const DictionaryCreationForm: FC = () => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { addDictionary } = useAddDictionary();\n const { data: projects } = useGetProjects();\n const DictionarySchema = useDictionarySchema(String(project?._id));\n const { form, isSubmitting } = useForm(DictionarySchema);\n const { keyInput, createDictionaryButton, projectInput } = useDictionary(\n dictionaryFormContent\n );\n\n const onSubmitSuccess = async (data: DictionaryFormData) => {\n await addDictionary(data);\n };\n\n return (\n <Form\n schema={DictionarySchema}\n onSubmitSuccess={onSubmitSuccess}\n className=\"w-full max-w-[400px]\"\n {...form}\n >\n <Form.Input\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.placeholder}\n isRequired\n />\n\n <Form.MultiSelect name=\"projectIds\" label={projectInput.label}>\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.Button\n className=\"ml-auto mt-12\"\n type=\"submit\"\n color=\"text\"\n isLoading={isSubmitting}\n label={createDictionaryButton.ariaLabel}\n >\n {createDictionaryButton.text}\n </Form.Button>\n </Form>\n );\n};\n"],"names":["useAuth","useAddDictionary","useGetProjects","useDictionarySchema","useForm","useDictionary","dictionaryFormContent","jsxs","Form","jsx","MultiSelect","project"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,yBAA6B,MAAM;AACxC,QAAA,EAAE,QAAQ,IAAIA,sCAAQ;AAC5B,QAAM,EAAE,YAAY,WAAW,CAAC;AAC1B,QAAA,EAAE,cAAc,IAAIC,wCAAiB;AAC3C,QAAM,EAAE,MAAM,SAAS,IAAIC,sCAAe;AAC1C,QAAM,mBAAmBC,gFAAA,oBAAoB,OAAO,SAAS,GAAG,CAAC;AACjE,QAAM,EAAE,MAAM,iBAAiBC,yBAAAA,QAAQ,gBAAgB;AACvD,QAAM,EAAE,UAAU,wBAAwB,aAAiB,IAAAC,cAAA;AAAA,IACzDC,uFAAAA;AAAAA,EACF;AAEM,QAAA,kBAAkB,OAAO,SAA6B;AAC1D,UAAM,cAAc,IAAI;AAAA,EAC1B;AAGE,SAAAC,2BAAA,kBAAA;AAAA,IAACC,sCAAA;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,MACR;AAAA,MACA,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAC,2BAAA,kBAAA;AAAA,UAACD,sCAAAA,KAAK;AAAA,UAAL;AAAA,YACC,MAAK;AAAA,YACL,OAAO,SAAS;AAAA,YAChB,aAAa,SAAS;AAAA,YACtB,YAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QAEAD,kDAACC,sCAAAA,KAAK,aAAL,EAAiB,MAAK,cAAa,OAAO,aAAa,OACtD,UAAA;AAAA,UAAAC,2BAAA,kBAAA;AAAA,YAACC,8BAAAA,YAAY;AAAA,YAAZ;AAAA,cACC,eAAe,CAAC,UACd,UAAU,MAAM,KAAK,CAACC,aAAY,OAAOA,SAAQ,GAAG,MAAM,KAAK,GAC3D,QAAQ;AAAA,cAGd,2DAACD,0CAAY,OAAZ,EAAkB,aAAa,aAAa,YAAa,CAAA;AAAA,YAAA;AAAA,UAC5D;AAAA,UACCD,2BAAAA,kBAAAA,IAAAC,8BAAAA,YAAY,SAAZ,EACC,UAACD,2BAAA,kBAAA,IAAAC,8BAAA,YAAY,MAAZ,EACE,UAAU,UAAA,MAAM,IAAI,CAACC,aACpBF,2BAAA,kBAAA;AAAA,YAACC,8BAAAA,YAAY;AAAA,YAAZ;AAAA,cAEC,OAAO,OAAOC,SAAQ,GAAG;AAAA,cAExB,UAAAA,SAAQ;AAAA,YAAA;AAAA,YAHJ,OAAOA,SAAQ,GAAG;AAAA,UAK1B,CAAA,EACH,CAAA,EACF,CAAA;AAAA,QAAA,GACF;AAAA,QAEAF,2BAAA,kBAAA;AAAA,UAACD,sCAAAA,KAAK;AAAA,UAAL;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,OAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO,uBAAuB;AAAA,YAE7B,UAAuB,uBAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
|
package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { j as jsxRuntimeExports } from "../../../jsx-runtime-DQkoUcjV.js";
|
|
3
3
|
import { useDictionary } from "react-intlayer";
|
|
4
4
|
import { useAddDictionary, useGetProjects } from "../../../hooks/intlayerAPIHooks.mjs";
|
|
5
|
-
import "../../../index-
|
|
5
|
+
import "../../../index-CVC2sfEj.js";
|
|
6
|
+
import "@intlayer/config/client";
|
|
6
7
|
import "../../Button/Button.mjs";
|
|
7
8
|
import "../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.mjs";
|
|
8
9
|
import { useForm } from "../../Form/FormBase.mjs";
|
|
@@ -15,7 +16,7 @@ import "../../Auth/SignUpForm/useSignUpSchema.content.mjs";
|
|
|
15
16
|
import "react";
|
|
16
17
|
import "../../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
|
|
17
18
|
import "../../../hooks/useAsync/useAsyncStateStore.mjs";
|
|
18
|
-
import "@intlayer/
|
|
19
|
+
import "@intlayer/editor-react";
|
|
19
20
|
import "deepmerge";
|
|
20
21
|
import { useAuth } from "../../Auth/useAuth/index.mjs";
|
|
21
22
|
import "../../Auth/ChangePasswordForm/changePasswordForm.content.mjs";
|
|
@@ -25,6 +26,7 @@ import "../../Auth/ResetPasswordForm/useResetPasswordSchema.content.mjs";
|
|
|
25
26
|
import "../../Modal/Modal.mjs";
|
|
26
27
|
import "clsx";
|
|
27
28
|
import "tailwind-merge";
|
|
29
|
+
import "@intlayer/api";
|
|
28
30
|
import { MultiSelect } from "../../Select/Multiselect.mjs";
|
|
29
31
|
import "../../Select/Select.mjs";
|
|
30
32
|
import { dictionaryFormContent } from "./dictionaryCreationForm.content.mjs";
|
package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictionaryCreationForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAddDictionary,\n useGetProjects,\n} from '../../../hooks/intlayerAPIHooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { MultiSelect } from '../../Select';\nimport { dictionaryFormContent } from './dictionaryCreationForm.content';\nimport {\n useDictionarySchema,\n type DictionaryFormData,\n} from './useDictionaryFormSchema';\n\nexport const DictionaryCreationForm: FC = () => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { addDictionary } = useAddDictionary();\n const { data: projects } = useGetProjects();\n const DictionarySchema = useDictionarySchema(String(project?._id));\n const { form, isSubmitting } = useForm(DictionarySchema);\n const { keyInput, createDictionaryButton, projectInput } = useDictionary(\n dictionaryFormContent\n );\n\n const onSubmitSuccess = async (data: DictionaryFormData) => {\n await addDictionary(data);\n };\n\n return (\n <Form\n schema={DictionarySchema}\n onSubmitSuccess={onSubmitSuccess}\n className=\"w-full max-w-[400px]\"\n {...form}\n >\n <Form.Input\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.placeholder}\n isRequired\n />\n\n <Form.MultiSelect name=\"projectIds\" label={projectInput.label}>\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.Button\n className=\"ml-auto mt-12\"\n type=\"submit\"\n color=\"text\"\n isLoading={isSubmitting}\n label={createDictionaryButton.ariaLabel}\n >\n {createDictionaryButton.text}\n </Form.Button>\n </Form>\n );\n};\n"],"names":["jsxs","jsx","project"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DictionaryCreationForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAddDictionary,\n useGetProjects,\n} from '../../../hooks/intlayerAPIHooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { MultiSelect } from '../../Select';\nimport { dictionaryFormContent } from './dictionaryCreationForm.content';\nimport {\n useDictionarySchema,\n type DictionaryFormData,\n} from './useDictionaryFormSchema';\n\nexport const DictionaryCreationForm: FC = () => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { addDictionary } = useAddDictionary();\n const { data: projects } = useGetProjects();\n const DictionarySchema = useDictionarySchema(String(project?._id));\n const { form, isSubmitting } = useForm(DictionarySchema);\n const { keyInput, createDictionaryButton, projectInput } = useDictionary(\n dictionaryFormContent\n );\n\n const onSubmitSuccess = async (data: DictionaryFormData) => {\n await addDictionary(data);\n };\n\n return (\n <Form\n schema={DictionarySchema}\n onSubmitSuccess={onSubmitSuccess}\n className=\"w-full max-w-[400px]\"\n {...form}\n >\n <Form.Input\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.placeholder}\n isRequired\n />\n\n <Form.MultiSelect name=\"projectIds\" label={projectInput.label}>\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.Button\n className=\"ml-auto mt-12\"\n type=\"submit\"\n color=\"text\"\n isLoading={isSubmitting}\n label={createDictionaryButton.ariaLabel}\n >\n {createDictionaryButton.text}\n </Form.Button>\n </Form>\n );\n};\n"],"names":["jsxs","jsx","project"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,yBAA6B,MAAM;AACxC,QAAA,EAAE,QAAQ,IAAI,QAAQ;AAC5B,QAAM,EAAE,YAAY,WAAW,CAAC;AAC1B,QAAA,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,EAAE,MAAM,SAAS,IAAI,eAAe;AAC1C,QAAM,mBAAmB,oBAAoB,OAAO,SAAS,GAAG,CAAC;AACjE,QAAM,EAAE,MAAM,iBAAiB,QAAQ,gBAAgB;AACvD,QAAM,EAAE,UAAU,wBAAwB,aAAiB,IAAA;AAAA,IACzD;AAAA,EACF;AAEM,QAAA,kBAAkB,OAAO,SAA6B;AAC1D,UAAM,cAAc,IAAI;AAAA,EAC1B;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,MACR;AAAA,MACA,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAC,kCAAA;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACC,MAAK;AAAA,YACL,OAAO,SAAS;AAAA,YAChB,aAAa,SAAS;AAAA,YACtB,YAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QAEAD,uCAAC,KAAK,aAAL,EAAiB,MAAK,cAAa,OAAO,aAAa,OACtD,UAAA;AAAA,UAAAC,kCAAA;AAAA,YAAC,YAAY;AAAA,YAAZ;AAAA,cACC,eAAe,CAAC,UACd,UAAU,MAAM,KAAK,CAACC,aAAY,OAAOA,SAAQ,GAAG,MAAM,KAAK,GAC3D,QAAQ;AAAA,cAGd,gDAAC,YAAY,OAAZ,EAAkB,aAAa,aAAa,YAAa,CAAA;AAAA,YAAA;AAAA,UAC5D;AAAA,UACCD,kCAAAA,IAAA,YAAY,SAAZ,EACC,UAACA,kCAAA,IAAA,YAAY,MAAZ,EACE,UAAU,UAAA,MAAM,IAAI,CAACC,aACpBD,kCAAA;AAAA,YAAC,YAAY;AAAA,YAAZ;AAAA,cAEC,OAAO,OAAOC,SAAQ,GAAG;AAAA,cAExB,UAAAA,SAAQ;AAAA,YAAA;AAAA,YAHJ,OAAOA,SAAQ,GAAG;AAAA,UAK1B,CAAA,EACH,CAAA,EACF,CAAA;AAAA,QAAA,GACF;AAAA,QAEAD,kCAAA;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,OAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO,uBAAuB;AAAA,YAE7B,UAAuB,uBAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ;"}
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
4
|
const jsxRuntime = require("../../../jsx-runtime-CgFM7lM3.cjs");
|
|
5
|
+
const editorReact = require("@intlayer/editor-react");
|
|
5
6
|
const lucideReact = require("lucide-react");
|
|
6
7
|
const require$$0 = require("react");
|
|
7
8
|
const reactIntlayer = require("react-intlayer");
|
|
8
9
|
require("../../../hooks/useScrollBlockage/useScrollBlockageStore.cjs");
|
|
9
10
|
require("../../../hooks/useAsync/useAsyncStateStore.cjs");
|
|
10
11
|
const hooks_intlayerAPIHooks = require("../../../hooks/intlayerAPIHooks.cjs");
|
|
11
|
-
require("@intlayer/dictionaries-entry");
|
|
12
12
|
require("deepmerge");
|
|
13
|
-
require("../../../index-
|
|
13
|
+
require("../../../index-CuQs5759.cjs");
|
|
14
|
+
require("@intlayer/config/client");
|
|
14
15
|
require("../../Button/Button.cjs");
|
|
15
16
|
require("../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.cjs");
|
|
16
17
|
const components_Form_FormBase = require("../../Form/FormBase.cjs");
|
|
@@ -27,12 +28,14 @@ require("../../Auth/ResetPasswordForm/resetPasswordContent.content.cjs");
|
|
|
27
28
|
require("../../Auth/ResetPasswordForm/useResetPasswordSchema.content.cjs");
|
|
28
29
|
require("../../Modal/Modal.cjs");
|
|
29
30
|
const components_Loader_index = require("../../Loader/index.cjs");
|
|
31
|
+
require("@intlayer/api");
|
|
30
32
|
const components_Select_Multiselect = require("../../Select/Multiselect.cjs");
|
|
31
33
|
const components_Select_Select = require("../../Select/Select.cjs");
|
|
32
34
|
const components_DictionaryFieldEditor_DictionaryDetails_dictionaryDetails_content = require("./dictionaryDetails.content.cjs");
|
|
33
35
|
const components_DictionaryFieldEditor_DictionaryDetails_useDictionaryDetailsSchema = require("./useDictionaryDetailsSchema.cjs");
|
|
34
36
|
const DictionaryDetailsForm = ({
|
|
35
|
-
dictionary
|
|
37
|
+
dictionary,
|
|
38
|
+
mode
|
|
36
39
|
}) => {
|
|
37
40
|
const { session } = components_Auth_useAuth_index.useAuth();
|
|
38
41
|
const { project } = session ?? {};
|
|
@@ -58,21 +61,30 @@ const DictionaryDetailsForm = ({
|
|
|
58
61
|
saveButton,
|
|
59
62
|
projectInput,
|
|
60
63
|
tagsSelect,
|
|
61
|
-
auditButton
|
|
64
|
+
auditButton,
|
|
65
|
+
downloadButton
|
|
62
66
|
} = reactIntlayer.useDictionary(components_DictionaryFieldEditor_DictionaryDetails_dictionaryDetails_content.dictionaryDetailsContent);
|
|
63
67
|
const { auditContentDeclaration, isLoading: isAuditing } = hooks_intlayerAPIHooks.useAuditContentDeclarationMetadata();
|
|
68
|
+
const { writeDictionary } = hooks_intlayerAPIHooks.useWriteDictionary();
|
|
64
69
|
require$$0.useEffect(() => {
|
|
65
70
|
form.reset(dictionaryValue);
|
|
66
71
|
}, [dictionary, form?.reset]);
|
|
67
72
|
const isFormEdited = form.formState.isDirty;
|
|
68
73
|
const isLocalDictionary = typeof dictionary?._id === "undefined";
|
|
69
74
|
const onSubmitSuccess = async (data) => {
|
|
70
|
-
|
|
71
|
-
|
|
75
|
+
if (mode === "remote") {
|
|
76
|
+
await pushDictionaries([
|
|
77
|
+
{
|
|
78
|
+
...dictionary,
|
|
79
|
+
...data
|
|
80
|
+
}
|
|
81
|
+
]);
|
|
82
|
+
} else {
|
|
83
|
+
await writeDictionary({
|
|
72
84
|
...dictionary,
|
|
73
85
|
...data
|
|
74
|
-
}
|
|
75
|
-
|
|
86
|
+
});
|
|
87
|
+
}
|
|
76
88
|
};
|
|
77
89
|
const handleOnAuditFile = async () => {
|
|
78
90
|
const updatedDictionary = form.getValues();
|
|
@@ -81,10 +93,10 @@ const DictionaryDetailsForm = ({
|
|
|
81
93
|
}).then((response) => {
|
|
82
94
|
if (!response.data) return;
|
|
83
95
|
try {
|
|
84
|
-
const
|
|
96
|
+
const editedDictionary2 = JSON.parse(response.data.fileContent);
|
|
85
97
|
form.reset({
|
|
86
98
|
...updatedDictionary,
|
|
87
|
-
...
|
|
99
|
+
...editedDictionary2,
|
|
88
100
|
publishedVersion: updatedDictionary.publishedVersion ?? "-1"
|
|
89
101
|
});
|
|
90
102
|
} catch (error) {
|
|
@@ -93,6 +105,15 @@ const DictionaryDetailsForm = ({
|
|
|
93
105
|
});
|
|
94
106
|
};
|
|
95
107
|
const isLoading = isSubmitting || isLoadingTags;
|
|
108
|
+
const { editedContent } = editorReact.useEditedContent();
|
|
109
|
+
const editedDictionary = require$$0.useMemo(
|
|
110
|
+
() => editedContent?.[dictionary.key],
|
|
111
|
+
[editedContent, dictionary.key]
|
|
112
|
+
);
|
|
113
|
+
const isEdited = require$$0.useMemo(
|
|
114
|
+
() => editedDictionary && dictionary && JSON.stringify(editedDictionary.content) !== JSON.stringify(dictionary.content),
|
|
115
|
+
[dictionary, editedDictionary]
|
|
116
|
+
);
|
|
96
117
|
return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
|
|
97
118
|
components_Form_layout_FormItemLayout.Form,
|
|
98
119
|
{
|
|
@@ -222,32 +243,42 @@ const DictionaryDetailsForm = ({
|
|
|
222
243
|
children: auditButton.text
|
|
223
244
|
}
|
|
224
245
|
),
|
|
225
|
-
isLocalDictionary ? /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
|
|
246
|
+
mode === "remote" ? isLocalDictionary ? /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
|
|
226
247
|
components_Form_layout_FormItemLayout.Form.Button,
|
|
227
248
|
{
|
|
228
249
|
type: "submit",
|
|
229
250
|
label: publishButton.label,
|
|
230
251
|
disabled: isSubmitting || !isFormEdited || isLoading,
|
|
231
252
|
Icon: lucideReact.ArrowUpFromLine,
|
|
232
|
-
isFullWidth: false,
|
|
233
253
|
color: "text",
|
|
234
254
|
className: "max-md:w-full",
|
|
235
255
|
isLoading: isSubmitting,
|
|
236
256
|
children: publishButton.text
|
|
237
257
|
}
|
|
238
|
-
) : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
|
|
258
|
+
) : isEdited && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
|
|
239
259
|
components_Form_layout_FormItemLayout.Form.Button,
|
|
240
260
|
{
|
|
241
261
|
type: "submit",
|
|
242
262
|
label: saveButton.label,
|
|
243
263
|
disabled: isSubmitting || !isFormEdited || isLoading,
|
|
244
|
-
isFullWidth: false,
|
|
245
264
|
Icon: lucideReact.Save,
|
|
246
265
|
color: "text",
|
|
247
266
|
className: "max-md:w-full",
|
|
248
267
|
isLoading: isSubmitting,
|
|
249
268
|
children: saveButton.text
|
|
250
269
|
}
|
|
270
|
+
) : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
|
|
271
|
+
components_Form_layout_FormItemLayout.Form.Button,
|
|
272
|
+
{
|
|
273
|
+
type: "submit",
|
|
274
|
+
label: downloadButton.label,
|
|
275
|
+
disabled: isSubmitting || !isFormEdited || isLoading,
|
|
276
|
+
Icon: lucideReact.Download,
|
|
277
|
+
color: "text",
|
|
278
|
+
className: "max-md:w-full",
|
|
279
|
+
isLoading: isSubmitting,
|
|
280
|
+
children: downloadButton.text
|
|
281
|
+
}
|
|
251
282
|
)
|
|
252
283
|
] })
|
|
253
284
|
]
|
package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictionaryDetailsForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"sourcesContent":["'use client';\n\nimport {\n DictionaryAPI,\n Dictionary as DistantDictionary,\n} from '@intlayer/backend';\nimport { Dictionary } from '@intlayer/core';\nimport { ArrowUpFromLine, Save, WandSparkles } from 'lucide-react';\nimport { type FC, useEffect } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAuditContentDeclarationMetadata,\n useGetProjects,\n useGetTags,\n usePushDictionaries,\n} from '../../../hooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { Loader } from '../../Loader';\nimport { MultiSelect, Select } from '../../Select';\nimport { dictionaryDetailsContent } from './dictionaryDetails.content';\nimport {\n useDictionaryDetailsSchema,\n DictionaryDetailsFormData,\n} from './useDictionaryDetailsSchema';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n};\n\nexport const DictionaryDetailsForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n}) => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { pushDictionaries } = usePushDictionaries();\n const { data: projects, isLoading: isLoadingProjects } = useGetProjects();\n const { data: tags, isLoading: isLoadingTags } = useGetTags();\n const dictionaryValue = {\n ...dictionary,\n publishedVersion: dictionary.publishedVersion ?? '-1',\n };\n\n const DictionaryDetailsSchema = useDictionaryDetailsSchema(\n String(project?._id)\n );\n const { form, isSubmitting } = useForm(DictionaryDetailsSchema, {\n defaultValues: dictionaryValue,\n });\n const {\n titleInput,\n keyInput,\n descriptionInput,\n publishedVersionSelect,\n publishButton,\n saveButton,\n projectInput,\n tagsSelect,\n auditButton,\n } = useDictionary(dictionaryDetailsContent);\n const { auditContentDeclaration, isLoading: isAuditing } =\n useAuditContentDeclarationMetadata();\n\n useEffect(() => {\n form.reset(dictionaryValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dictionary, form?.reset]);\n\n const isFormEdited = form.formState.isDirty;\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const onSubmitSuccess = async (data: DictionaryDetailsFormData) => {\n await pushDictionaries([\n {\n ...dictionary,\n ...data,\n },\n ]);\n };\n\n const handleOnAuditFile = async () => {\n const updatedDictionary = form.getValues();\n await auditContentDeclaration({\n fileContent: JSON.stringify({ ...dictionary, ...updatedDictionary }),\n }).then((response) => {\n if (!response.data) return;\n\n try {\n const editedDictionary = JSON.parse(response.data.fileContent) as\n | Partial<Dictionary>\n | undefined;\n\n form.reset({\n ...updatedDictionary,\n ...editedDictionary,\n publishedVersion: updatedDictionary.publishedVersion ?? '-1',\n });\n } catch (error) {\n console.error(error);\n }\n });\n };\n\n const isLoading = isSubmitting || isLoadingTags;\n\n return (\n <Form\n className=\"flex size-full flex-1 flex-col gap-8\"\n {...form}\n schema={DictionaryDetailsSchema}\n onSubmitSuccess={onSubmitSuccess}\n >\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.EditableFieldInput\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.label}\n description={keyInput.description}\n disabled={isSubmitting}\n isRequired\n />\n <Form.EditableFieldInput\n name=\"title\"\n label={titleInput.label}\n placeholder={titleInput.placeholder}\n description={titleInput.description}\n disabled={isSubmitting}\n />\n </div>\n <Form.EditableFieldTextArea\n name=\"description\"\n label={descriptionInput.label}\n placeholder={descriptionInput.placeholder}\n description={descriptionInput.description}\n disabled={isSubmitting}\n />\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.MultiSelect\n name=\"projectIds\"\n label={projectInput.label}\n description={projectInput.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.MultiSelect\n name=\"tags\"\n label={tagsSelect.label}\n description={tagsSelect.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={tagsSelect.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {tags?.data?.map((tag) => (\n <MultiSelect.Item\n key={String(tag.key)}\n value={String(tag.key)}\n >\n {tag.name ?? tag.key}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n </div>\n {((dictionary as DictionaryAPI).availableVersions?.length ?? 0) > 1 && (\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.Select\n name=\"publishedVersion\"\n description={publishedVersionSelect.description}\n label={publishedVersionSelect.label}\n >\n <Select.Trigger>\n <Select.Value placeholder={publishedVersionSelect.placeholder} />\n </Select.Trigger>\n <Select.Content>\n <Select.Item value=\"-1\">LTS</Select.Item>\n {(dictionary as DictionaryAPI).availableVersions?.map(\n (version) => (\n <Select.Item value={version} key={version}>\n {version}\n </Select.Item>\n )\n )}\n </Select.Content>\n </Form.Select>\n <div className=\"w-full\" />\n </div>\n )}\n\n <div className=\"flex flex-wrap items-center justify-end gap-2 max-md:flex-col\">\n <Form.Button\n type=\"button\"\n label={auditButton.label}\n Icon={WandSparkles}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={handleOnAuditFile}\n disabled={isSubmitting || isAuditing}\n isLoading={isAuditing}\n >\n {auditButton.text}\n </Form.Button>\n {isLocalDictionary ? (\n <Form.Button\n type=\"submit\"\n label={publishButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={ArrowUpFromLine}\n isFullWidth={false}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {publishButton.text}\n </Form.Button>\n ) : (\n <Form.Button\n type=\"submit\"\n label={saveButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n isFullWidth={false}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {saveButton.text}\n </Form.Button>\n )}\n </div>\n </Form>\n );\n};\n"],"names":["useAuth","usePushDictionaries","useGetProjects","useGetTags","useDictionaryDetailsSchema","useForm","useDictionary","dictionaryDetailsContent","useAuditContentDeclarationMetadata","useEffect","jsxs","Form","jsx","MultiSelect","project","Loader","Select","WandSparkles","ArrowUpFromLine","Save"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DictionaryDetailsForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"sourcesContent":["'use client';\n\nimport {\n DictionaryAPI,\n Dictionary as DistantDictionary,\n} from '@intlayer/backend';\nimport { Dictionary } from '@intlayer/core';\nimport { useEditedContent } from '@intlayer/editor-react';\nimport { ArrowUpFromLine, Download, Save, WandSparkles } from 'lucide-react';\nimport { type FC, useEffect, useMemo } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAuditContentDeclarationMetadata,\n useGetProjects,\n useGetTags,\n usePushDictionaries,\n useWriteDictionary,\n} from '../../../hooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { Loader } from '../../Loader';\nimport { MultiSelect, Select } from '../../Select';\nimport { dictionaryDetailsContent } from './dictionaryDetails.content';\nimport {\n useDictionaryDetailsSchema,\n DictionaryDetailsFormData,\n} from './useDictionaryDetailsSchema';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n mode: 'local' | 'remote';\n};\n\nexport const DictionaryDetailsForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n mode,\n}) => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { pushDictionaries } = usePushDictionaries();\n const { data: projects, isLoading: isLoadingProjects } = useGetProjects();\n const { data: tags, isLoading: isLoadingTags } = useGetTags();\n const dictionaryValue = {\n ...dictionary,\n publishedVersion: dictionary.publishedVersion ?? '-1',\n };\n\n const DictionaryDetailsSchema = useDictionaryDetailsSchema(\n String(project?._id)\n );\n const { form, isSubmitting } = useForm(DictionaryDetailsSchema, {\n defaultValues: dictionaryValue,\n });\n const {\n titleInput,\n keyInput,\n descriptionInput,\n publishedVersionSelect,\n publishButton,\n saveButton,\n projectInput,\n tagsSelect,\n auditButton,\n downloadButton,\n } = useDictionary(dictionaryDetailsContent);\n const { auditContentDeclaration, isLoading: isAuditing } =\n useAuditContentDeclarationMetadata();\n const { writeDictionary } = useWriteDictionary();\n\n useEffect(() => {\n form.reset(dictionaryValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dictionary, form?.reset]);\n\n const isFormEdited = form.formState.isDirty;\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const onSubmitSuccess = async (data: DictionaryDetailsFormData) => {\n if (mode === 'remote') {\n await pushDictionaries([\n {\n ...dictionary,\n ...data,\n },\n ]);\n } else {\n await writeDictionary({\n ...dictionary,\n ...data,\n });\n }\n };\n\n const handleOnAuditFile = async () => {\n const updatedDictionary = form.getValues();\n await auditContentDeclaration({\n fileContent: JSON.stringify({ ...dictionary, ...updatedDictionary }),\n }).then((response) => {\n if (!response.data) return;\n\n try {\n const editedDictionary = JSON.parse(response.data.fileContent) as\n | Partial<Dictionary>\n | undefined;\n\n form.reset({\n ...updatedDictionary,\n ...editedDictionary,\n publishedVersion: updatedDictionary.publishedVersion ?? '-1',\n });\n } catch (error) {\n console.error(error);\n }\n });\n };\n\n const isLoading = isSubmitting || isLoadingTags;\n\n const { editedContent } = useEditedContent();\n const editedDictionary = useMemo(\n () => editedContent?.[dictionary.key],\n [editedContent, dictionary.key]\n );\n const isEdited = useMemo(\n () =>\n editedDictionary &&\n dictionary &&\n JSON.stringify(editedDictionary.content) !==\n JSON.stringify(dictionary.content),\n [dictionary, editedDictionary]\n );\n\n return (\n <Form\n className=\"flex size-full flex-1 flex-col gap-8\"\n {...form}\n schema={DictionaryDetailsSchema}\n onSubmitSuccess={onSubmitSuccess}\n >\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.EditableFieldInput\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.label}\n description={keyInput.description}\n disabled={isSubmitting}\n isRequired\n />\n <Form.EditableFieldInput\n name=\"title\"\n label={titleInput.label}\n placeholder={titleInput.placeholder}\n description={titleInput.description}\n disabled={isSubmitting}\n />\n </div>\n <Form.EditableFieldTextArea\n name=\"description\"\n label={descriptionInput.label}\n placeholder={descriptionInput.placeholder}\n description={descriptionInput.description}\n disabled={isSubmitting}\n />\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.MultiSelect\n name=\"projectIds\"\n label={projectInput.label}\n description={projectInput.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.MultiSelect\n name=\"tags\"\n label={tagsSelect.label}\n description={tagsSelect.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={tagsSelect.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {tags?.data?.map((tag) => (\n <MultiSelect.Item\n key={String(tag.key)}\n value={String(tag.key)}\n >\n {tag.name ?? tag.key}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n </div>\n {((dictionary as DictionaryAPI).availableVersions?.length ?? 0) > 1 && (\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.Select\n name=\"publishedVersion\"\n description={publishedVersionSelect.description}\n label={publishedVersionSelect.label}\n >\n <Select.Trigger>\n <Select.Value placeholder={publishedVersionSelect.placeholder} />\n </Select.Trigger>\n <Select.Content>\n <Select.Item value=\"-1\">LTS</Select.Item>\n {(dictionary as DictionaryAPI).availableVersions?.map(\n (version) => (\n <Select.Item value={version} key={version}>\n {version}\n </Select.Item>\n )\n )}\n </Select.Content>\n </Form.Select>\n <div className=\"w-full\" />\n </div>\n )}\n\n <div className=\"flex flex-wrap items-center justify-end gap-2 max-md:flex-col\">\n <Form.Button\n type=\"button\"\n label={auditButton.label}\n Icon={WandSparkles}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={handleOnAuditFile}\n disabled={isSubmitting || isAuditing}\n isLoading={isAuditing}\n >\n {auditButton.text}\n </Form.Button>\n\n {mode === 'remote' ? (\n isLocalDictionary ? (\n <Form.Button\n type=\"submit\"\n label={publishButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={ArrowUpFromLine}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {publishButton.text}\n </Form.Button>\n ) : (\n isEdited && (\n <Form.Button\n type=\"submit\"\n label={saveButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {saveButton.text}\n </Form.Button>\n )\n )\n ) : (\n <Form.Button\n type=\"submit\"\n label={downloadButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={Download}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {downloadButton.text}\n </Form.Button>\n )}\n </div>\n </Form>\n );\n};\n"],"names":["useAuth","usePushDictionaries","useGetProjects","useGetTags","useDictionaryDetailsSchema","useForm","useDictionary","dictionaryDetailsContent","useAuditContentDeclarationMetadata","useWriteDictionary","useEffect","editedDictionary","useEditedContent","useMemo","jsxs","Form","jsx","MultiSelect","project","Loader","Select","WandSparkles","ArrowUpFromLine","Save","Download"],"mappings":"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"}
|
package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictionaryDetailsForm.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"DictionaryDetailsForm.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,KAAK,EAAE,EAAsB,MAAM,OAAO,CAAC;AAoBpD,KAAK,sBAAsB,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,sBAAsB,CAkR5D,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { j as jsxRuntimeExports } from "../../../jsx-runtime-DQkoUcjV.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { useEditedContent } from "@intlayer/editor-react";
|
|
4
|
+
import { WandSparkles, ArrowUpFromLine, Save, Download } from "lucide-react";
|
|
5
|
+
import { useEffect, useMemo } from "react";
|
|
5
6
|
import { useDictionary } from "react-intlayer";
|
|
6
7
|
import "../../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
|
|
7
8
|
import "../../../hooks/useAsync/useAsyncStateStore.mjs";
|
|
8
|
-
import { usePushDictionaries, useGetProjects, useGetTags, useAuditContentDeclarationMetadata } from "../../../hooks/intlayerAPIHooks.mjs";
|
|
9
|
-
import "@intlayer/dictionaries-entry";
|
|
9
|
+
import { usePushDictionaries, useGetProjects, useGetTags, useAuditContentDeclarationMetadata, useWriteDictionary } from "../../../hooks/intlayerAPIHooks.mjs";
|
|
10
10
|
import "deepmerge";
|
|
11
|
-
import "../../../index-
|
|
11
|
+
import "../../../index-CVC2sfEj.js";
|
|
12
|
+
import "@intlayer/config/client";
|
|
12
13
|
import "../../Button/Button.mjs";
|
|
13
14
|
import "../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.mjs";
|
|
14
15
|
import { useForm } from "../../Form/FormBase.mjs";
|
|
@@ -25,12 +26,14 @@ import "../../Auth/ResetPasswordForm/resetPasswordContent.content.mjs";
|
|
|
25
26
|
import "../../Auth/ResetPasswordForm/useResetPasswordSchema.content.mjs";
|
|
26
27
|
import "../../Modal/Modal.mjs";
|
|
27
28
|
import { Loader } from "../../Loader/index.mjs";
|
|
29
|
+
import "@intlayer/api";
|
|
28
30
|
import { MultiSelect } from "../../Select/Multiselect.mjs";
|
|
29
31
|
import { Select } from "../../Select/Select.mjs";
|
|
30
32
|
import { dictionaryDetailsContent } from "./dictionaryDetails.content.mjs";
|
|
31
33
|
import { useDictionaryDetailsSchema } from "./useDictionaryDetailsSchema.mjs";
|
|
32
34
|
const DictionaryDetailsForm = ({
|
|
33
|
-
dictionary
|
|
35
|
+
dictionary,
|
|
36
|
+
mode
|
|
34
37
|
}) => {
|
|
35
38
|
const { session } = useAuth();
|
|
36
39
|
const { project } = session ?? {};
|
|
@@ -56,21 +59,30 @@ const DictionaryDetailsForm = ({
|
|
|
56
59
|
saveButton,
|
|
57
60
|
projectInput,
|
|
58
61
|
tagsSelect,
|
|
59
|
-
auditButton
|
|
62
|
+
auditButton,
|
|
63
|
+
downloadButton
|
|
60
64
|
} = useDictionary(dictionaryDetailsContent);
|
|
61
65
|
const { auditContentDeclaration, isLoading: isAuditing } = useAuditContentDeclarationMetadata();
|
|
66
|
+
const { writeDictionary } = useWriteDictionary();
|
|
62
67
|
useEffect(() => {
|
|
63
68
|
form.reset(dictionaryValue);
|
|
64
69
|
}, [dictionary, form?.reset]);
|
|
65
70
|
const isFormEdited = form.formState.isDirty;
|
|
66
71
|
const isLocalDictionary = typeof dictionary?._id === "undefined";
|
|
67
72
|
const onSubmitSuccess = async (data) => {
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
if (mode === "remote") {
|
|
74
|
+
await pushDictionaries([
|
|
75
|
+
{
|
|
76
|
+
...dictionary,
|
|
77
|
+
...data
|
|
78
|
+
}
|
|
79
|
+
]);
|
|
80
|
+
} else {
|
|
81
|
+
await writeDictionary({
|
|
70
82
|
...dictionary,
|
|
71
83
|
...data
|
|
72
|
-
}
|
|
73
|
-
|
|
84
|
+
});
|
|
85
|
+
}
|
|
74
86
|
};
|
|
75
87
|
const handleOnAuditFile = async () => {
|
|
76
88
|
const updatedDictionary = form.getValues();
|
|
@@ -79,10 +91,10 @@ const DictionaryDetailsForm = ({
|
|
|
79
91
|
}).then((response) => {
|
|
80
92
|
if (!response.data) return;
|
|
81
93
|
try {
|
|
82
|
-
const
|
|
94
|
+
const editedDictionary2 = JSON.parse(response.data.fileContent);
|
|
83
95
|
form.reset({
|
|
84
96
|
...updatedDictionary,
|
|
85
|
-
...
|
|
97
|
+
...editedDictionary2,
|
|
86
98
|
publishedVersion: updatedDictionary.publishedVersion ?? "-1"
|
|
87
99
|
});
|
|
88
100
|
} catch (error) {
|
|
@@ -91,6 +103,15 @@ const DictionaryDetailsForm = ({
|
|
|
91
103
|
});
|
|
92
104
|
};
|
|
93
105
|
const isLoading = isSubmitting || isLoadingTags;
|
|
106
|
+
const { editedContent } = useEditedContent();
|
|
107
|
+
const editedDictionary = useMemo(
|
|
108
|
+
() => editedContent?.[dictionary.key],
|
|
109
|
+
[editedContent, dictionary.key]
|
|
110
|
+
);
|
|
111
|
+
const isEdited = useMemo(
|
|
112
|
+
() => editedDictionary && dictionary && JSON.stringify(editedDictionary.content) !== JSON.stringify(dictionary.content),
|
|
113
|
+
[dictionary, editedDictionary]
|
|
114
|
+
);
|
|
94
115
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
95
116
|
Form,
|
|
96
117
|
{
|
|
@@ -220,32 +241,42 @@ const DictionaryDetailsForm = ({
|
|
|
220
241
|
children: auditButton.text
|
|
221
242
|
}
|
|
222
243
|
),
|
|
223
|
-
isLocalDictionary ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
244
|
+
mode === "remote" ? isLocalDictionary ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
224
245
|
Form.Button,
|
|
225
246
|
{
|
|
226
247
|
type: "submit",
|
|
227
248
|
label: publishButton.label,
|
|
228
249
|
disabled: isSubmitting || !isFormEdited || isLoading,
|
|
229
250
|
Icon: ArrowUpFromLine,
|
|
230
|
-
isFullWidth: false,
|
|
231
251
|
color: "text",
|
|
232
252
|
className: "max-md:w-full",
|
|
233
253
|
isLoading: isSubmitting,
|
|
234
254
|
children: publishButton.text
|
|
235
255
|
}
|
|
236
|
-
) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
256
|
+
) : isEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
237
257
|
Form.Button,
|
|
238
258
|
{
|
|
239
259
|
type: "submit",
|
|
240
260
|
label: saveButton.label,
|
|
241
261
|
disabled: isSubmitting || !isFormEdited || isLoading,
|
|
242
|
-
isFullWidth: false,
|
|
243
262
|
Icon: Save,
|
|
244
263
|
color: "text",
|
|
245
264
|
className: "max-md:w-full",
|
|
246
265
|
isLoading: isSubmitting,
|
|
247
266
|
children: saveButton.text
|
|
248
267
|
}
|
|
268
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
269
|
+
Form.Button,
|
|
270
|
+
{
|
|
271
|
+
type: "submit",
|
|
272
|
+
label: downloadButton.label,
|
|
273
|
+
disabled: isSubmitting || !isFormEdited || isLoading,
|
|
274
|
+
Icon: Download,
|
|
275
|
+
color: "text",
|
|
276
|
+
className: "max-md:w-full",
|
|
277
|
+
isLoading: isSubmitting,
|
|
278
|
+
children: downloadButton.text
|
|
279
|
+
}
|
|
249
280
|
)
|
|
250
281
|
] })
|
|
251
282
|
]
|
package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictionaryDetailsForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"sourcesContent":["'use client';\n\nimport {\n DictionaryAPI,\n Dictionary as DistantDictionary,\n} from '@intlayer/backend';\nimport { Dictionary } from '@intlayer/core';\nimport { ArrowUpFromLine, Save, WandSparkles } from 'lucide-react';\nimport { type FC, useEffect } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAuditContentDeclarationMetadata,\n useGetProjects,\n useGetTags,\n usePushDictionaries,\n} from '../../../hooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { Loader } from '../../Loader';\nimport { MultiSelect, Select } from '../../Select';\nimport { dictionaryDetailsContent } from './dictionaryDetails.content';\nimport {\n useDictionaryDetailsSchema,\n DictionaryDetailsFormData,\n} from './useDictionaryDetailsSchema';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n};\n\nexport const DictionaryDetailsForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n}) => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { pushDictionaries } = usePushDictionaries();\n const { data: projects, isLoading: isLoadingProjects } = useGetProjects();\n const { data: tags, isLoading: isLoadingTags } = useGetTags();\n const dictionaryValue = {\n ...dictionary,\n publishedVersion: dictionary.publishedVersion ?? '-1',\n };\n\n const DictionaryDetailsSchema = useDictionaryDetailsSchema(\n String(project?._id)\n );\n const { form, isSubmitting } = useForm(DictionaryDetailsSchema, {\n defaultValues: dictionaryValue,\n });\n const {\n titleInput,\n keyInput,\n descriptionInput,\n publishedVersionSelect,\n publishButton,\n saveButton,\n projectInput,\n tagsSelect,\n auditButton,\n } = useDictionary(dictionaryDetailsContent);\n const { auditContentDeclaration, isLoading: isAuditing } =\n useAuditContentDeclarationMetadata();\n\n useEffect(() => {\n form.reset(dictionaryValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dictionary, form?.reset]);\n\n const isFormEdited = form.formState.isDirty;\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const onSubmitSuccess = async (data: DictionaryDetailsFormData) => {\n await pushDictionaries([\n {\n ...dictionary,\n ...data,\n },\n ]);\n };\n\n const handleOnAuditFile = async () => {\n const updatedDictionary = form.getValues();\n await auditContentDeclaration({\n fileContent: JSON.stringify({ ...dictionary, ...updatedDictionary }),\n }).then((response) => {\n if (!response.data) return;\n\n try {\n const editedDictionary = JSON.parse(response.data.fileContent) as\n | Partial<Dictionary>\n | undefined;\n\n form.reset({\n ...updatedDictionary,\n ...editedDictionary,\n publishedVersion: updatedDictionary.publishedVersion ?? '-1',\n });\n } catch (error) {\n console.error(error);\n }\n });\n };\n\n const isLoading = isSubmitting || isLoadingTags;\n\n return (\n <Form\n className=\"flex size-full flex-1 flex-col gap-8\"\n {...form}\n schema={DictionaryDetailsSchema}\n onSubmitSuccess={onSubmitSuccess}\n >\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.EditableFieldInput\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.label}\n description={keyInput.description}\n disabled={isSubmitting}\n isRequired\n />\n <Form.EditableFieldInput\n name=\"title\"\n label={titleInput.label}\n placeholder={titleInput.placeholder}\n description={titleInput.description}\n disabled={isSubmitting}\n />\n </div>\n <Form.EditableFieldTextArea\n name=\"description\"\n label={descriptionInput.label}\n placeholder={descriptionInput.placeholder}\n description={descriptionInput.description}\n disabled={isSubmitting}\n />\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.MultiSelect\n name=\"projectIds\"\n label={projectInput.label}\n description={projectInput.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.MultiSelect\n name=\"tags\"\n label={tagsSelect.label}\n description={tagsSelect.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={tagsSelect.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {tags?.data?.map((tag) => (\n <MultiSelect.Item\n key={String(tag.key)}\n value={String(tag.key)}\n >\n {tag.name ?? tag.key}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n </div>\n {((dictionary as DictionaryAPI).availableVersions?.length ?? 0) > 1 && (\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.Select\n name=\"publishedVersion\"\n description={publishedVersionSelect.description}\n label={publishedVersionSelect.label}\n >\n <Select.Trigger>\n <Select.Value placeholder={publishedVersionSelect.placeholder} />\n </Select.Trigger>\n <Select.Content>\n <Select.Item value=\"-1\">LTS</Select.Item>\n {(dictionary as DictionaryAPI).availableVersions?.map(\n (version) => (\n <Select.Item value={version} key={version}>\n {version}\n </Select.Item>\n )\n )}\n </Select.Content>\n </Form.Select>\n <div className=\"w-full\" />\n </div>\n )}\n\n <div className=\"flex flex-wrap items-center justify-end gap-2 max-md:flex-col\">\n <Form.Button\n type=\"button\"\n label={auditButton.label}\n Icon={WandSparkles}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={handleOnAuditFile}\n disabled={isSubmitting || isAuditing}\n isLoading={isAuditing}\n >\n {auditButton.text}\n </Form.Button>\n {isLocalDictionary ? (\n <Form.Button\n type=\"submit\"\n label={publishButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={ArrowUpFromLine}\n isFullWidth={false}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {publishButton.text}\n </Form.Button>\n ) : (\n <Form.Button\n type=\"submit\"\n label={saveButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n isFullWidth={false}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {saveButton.text}\n </Form.Button>\n )}\n </div>\n </Form>\n );\n};\n"],"names":["jsxs","jsx","project"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DictionaryDetailsForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"sourcesContent":["'use client';\n\nimport {\n DictionaryAPI,\n Dictionary as DistantDictionary,\n} from '@intlayer/backend';\nimport { Dictionary } from '@intlayer/core';\nimport { useEditedContent } from '@intlayer/editor-react';\nimport { ArrowUpFromLine, Download, Save, WandSparkles } from 'lucide-react';\nimport { type FC, useEffect, useMemo } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAuditContentDeclarationMetadata,\n useGetProjects,\n useGetTags,\n usePushDictionaries,\n useWriteDictionary,\n} from '../../../hooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { Loader } from '../../Loader';\nimport { MultiSelect, Select } from '../../Select';\nimport { dictionaryDetailsContent } from './dictionaryDetails.content';\nimport {\n useDictionaryDetailsSchema,\n DictionaryDetailsFormData,\n} from './useDictionaryDetailsSchema';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n mode: 'local' | 'remote';\n};\n\nexport const DictionaryDetailsForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n mode,\n}) => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { pushDictionaries } = usePushDictionaries();\n const { data: projects, isLoading: isLoadingProjects } = useGetProjects();\n const { data: tags, isLoading: isLoadingTags } = useGetTags();\n const dictionaryValue = {\n ...dictionary,\n publishedVersion: dictionary.publishedVersion ?? '-1',\n };\n\n const DictionaryDetailsSchema = useDictionaryDetailsSchema(\n String(project?._id)\n );\n const { form, isSubmitting } = useForm(DictionaryDetailsSchema, {\n defaultValues: dictionaryValue,\n });\n const {\n titleInput,\n keyInput,\n descriptionInput,\n publishedVersionSelect,\n publishButton,\n saveButton,\n projectInput,\n tagsSelect,\n auditButton,\n downloadButton,\n } = useDictionary(dictionaryDetailsContent);\n const { auditContentDeclaration, isLoading: isAuditing } =\n useAuditContentDeclarationMetadata();\n const { writeDictionary } = useWriteDictionary();\n\n useEffect(() => {\n form.reset(dictionaryValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dictionary, form?.reset]);\n\n const isFormEdited = form.formState.isDirty;\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const onSubmitSuccess = async (data: DictionaryDetailsFormData) => {\n if (mode === 'remote') {\n await pushDictionaries([\n {\n ...dictionary,\n ...data,\n },\n ]);\n } else {\n await writeDictionary({\n ...dictionary,\n ...data,\n });\n }\n };\n\n const handleOnAuditFile = async () => {\n const updatedDictionary = form.getValues();\n await auditContentDeclaration({\n fileContent: JSON.stringify({ ...dictionary, ...updatedDictionary }),\n }).then((response) => {\n if (!response.data) return;\n\n try {\n const editedDictionary = JSON.parse(response.data.fileContent) as\n | Partial<Dictionary>\n | undefined;\n\n form.reset({\n ...updatedDictionary,\n ...editedDictionary,\n publishedVersion: updatedDictionary.publishedVersion ?? '-1',\n });\n } catch (error) {\n console.error(error);\n }\n });\n };\n\n const isLoading = isSubmitting || isLoadingTags;\n\n const { editedContent } = useEditedContent();\n const editedDictionary = useMemo(\n () => editedContent?.[dictionary.key],\n [editedContent, dictionary.key]\n );\n const isEdited = useMemo(\n () =>\n editedDictionary &&\n dictionary &&\n JSON.stringify(editedDictionary.content) !==\n JSON.stringify(dictionary.content),\n [dictionary, editedDictionary]\n );\n\n return (\n <Form\n className=\"flex size-full flex-1 flex-col gap-8\"\n {...form}\n schema={DictionaryDetailsSchema}\n onSubmitSuccess={onSubmitSuccess}\n >\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.EditableFieldInput\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.label}\n description={keyInput.description}\n disabled={isSubmitting}\n isRequired\n />\n <Form.EditableFieldInput\n name=\"title\"\n label={titleInput.label}\n placeholder={titleInput.placeholder}\n description={titleInput.description}\n disabled={isSubmitting}\n />\n </div>\n <Form.EditableFieldTextArea\n name=\"description\"\n label={descriptionInput.label}\n placeholder={descriptionInput.placeholder}\n description={descriptionInput.description}\n disabled={isSubmitting}\n />\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.MultiSelect\n name=\"projectIds\"\n label={projectInput.label}\n description={projectInput.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.MultiSelect\n name=\"tags\"\n label={tagsSelect.label}\n description={tagsSelect.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={tagsSelect.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {tags?.data?.map((tag) => (\n <MultiSelect.Item\n key={String(tag.key)}\n value={String(tag.key)}\n >\n {tag.name ?? tag.key}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n </div>\n {((dictionary as DictionaryAPI).availableVersions?.length ?? 0) > 1 && (\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.Select\n name=\"publishedVersion\"\n description={publishedVersionSelect.description}\n label={publishedVersionSelect.label}\n >\n <Select.Trigger>\n <Select.Value placeholder={publishedVersionSelect.placeholder} />\n </Select.Trigger>\n <Select.Content>\n <Select.Item value=\"-1\">LTS</Select.Item>\n {(dictionary as DictionaryAPI).availableVersions?.map(\n (version) => (\n <Select.Item value={version} key={version}>\n {version}\n </Select.Item>\n )\n )}\n </Select.Content>\n </Form.Select>\n <div className=\"w-full\" />\n </div>\n )}\n\n <div className=\"flex flex-wrap items-center justify-end gap-2 max-md:flex-col\">\n <Form.Button\n type=\"button\"\n label={auditButton.label}\n Icon={WandSparkles}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={handleOnAuditFile}\n disabled={isSubmitting || isAuditing}\n isLoading={isAuditing}\n >\n {auditButton.text}\n </Form.Button>\n\n {mode === 'remote' ? (\n isLocalDictionary ? (\n <Form.Button\n type=\"submit\"\n label={publishButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={ArrowUpFromLine}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {publishButton.text}\n </Form.Button>\n ) : (\n isEdited && (\n <Form.Button\n type=\"submit\"\n label={saveButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {saveButton.text}\n </Form.Button>\n )\n )\n ) : (\n <Form.Button\n type=\"submit\"\n label={downloadButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={Download}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {downloadButton.text}\n </Form.Button>\n )}\n </div>\n </Form>\n );\n};\n"],"names":["editedDictionary","jsxs","jsx","project"],"mappings":"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"}
|
package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs
CHANGED
|
@@ -378,6 +378,38 @@ const dictionaryDetailsContent = {
|
|
|
378
378
|
ar: "التدقيق",
|
|
379
379
|
ru: "Отслеживание"
|
|
380
380
|
})
|
|
381
|
+
},
|
|
382
|
+
downloadButton: {
|
|
383
|
+
text: intlayer.t({
|
|
384
|
+
en: "Download",
|
|
385
|
+
"en-GB": "Download",
|
|
386
|
+
fr: "Télécharger",
|
|
387
|
+
es: "Descargar",
|
|
388
|
+
de: "Herunterladen",
|
|
389
|
+
ja: "ダウンロード",
|
|
390
|
+
ko: "다운로드",
|
|
391
|
+
zh: "下载",
|
|
392
|
+
it: "Scarica",
|
|
393
|
+
pt: "Baixar",
|
|
394
|
+
hi: "डाउनलोड",
|
|
395
|
+
ar: "تنزيل",
|
|
396
|
+
ru: "Скачать"
|
|
397
|
+
}),
|
|
398
|
+
label: intlayer.t({
|
|
399
|
+
en: "Click to download",
|
|
400
|
+
"en-GB": "Click to download",
|
|
401
|
+
fr: "Cliquez pour télécharger",
|
|
402
|
+
es: "Haga clic para descargar",
|
|
403
|
+
de: "Klicken Sie, um herunterzuladen",
|
|
404
|
+
ja: "ダウンロードするにはクリックしてください",
|
|
405
|
+
ko: "다운로드를 클릭하세요",
|
|
406
|
+
zh: "单击下载",
|
|
407
|
+
it: "Fai clic per scaricare",
|
|
408
|
+
pt: "Clique para baixar",
|
|
409
|
+
hi: "डाउनलोड करने के लिए क्लिक करें",
|
|
410
|
+
ar: "انقر لتنزيل",
|
|
411
|
+
ru: "Нажмите, чтобы скачать"
|
|
412
|
+
})
|
|
381
413
|
}
|
|
382
414
|
}
|
|
383
415
|
};
|