@intlayer/design-system 5.3.3 → 5.3.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 +67 -49
- package/dist/{Form-MjLzPGze.js → Form-CriPBaZk.js} +11 -1
- package/dist/Form-CriPBaZk.js.map +1 -0
- package/dist/{Form-BpxW17v4.cjs → Form-DJrUK3mm.cjs} +11 -1
- package/dist/Form-DJrUK3mm.cjs.map +1 -0
- package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.cjs +1 -1
- package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.mjs +1 -1
- package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.cjs +1 -1
- package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.mjs +1 -1
- package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.cjs +1 -1
- package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.mjs +1 -1
- package/dist/components/Auth/SignInForm/SignInForm.cjs +1 -1
- package/dist/components/Auth/SignInForm/SignInForm.mjs +1 -1
- package/dist/components/Auth/SignUpForm/SignUpForm.cjs +1 -1
- package/dist/components/Auth/SignUpForm/SignUpForm.mjs +1 -1
- package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.cjs +1 -1
- package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.mjs +1 -1
- package/dist/components/ContentEditor/ContentEditor.cjs.map +1 -1
- package/dist/components/ContentEditor/ContentEditor.d.ts +3 -2
- package/dist/components/ContentEditor/ContentEditor.d.ts.map +1 -1
- package/dist/components/ContentEditor/ContentEditor.mjs.map +1 -1
- package/dist/components/ContentEditor/ContentEditorTextArea.cjs +1 -1
- package/dist/components/ContentEditor/ContentEditorTextArea.mjs +1 -1
- package/dist/components/DictionaryEditor/DictionaryEditor.cjs +2 -1
- package/dist/components/DictionaryEditor/DictionaryEditor.cjs.map +1 -1
- package/dist/components/DictionaryEditor/DictionaryEditor.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/DictionaryEditor.mjs +2 -1
- package/dist/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ConditionWrapper.cjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/ConditionWrapper.mjs +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/FileWrapper.cjs +58 -0
- package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.cjs.map +1 -0
- package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts +9 -0
- package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts.map +1 -0
- package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs +58 -0
- package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs.map +1 -0
- package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.cjs +7 -0
- package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.cjs.map +1 -0
- package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts +9 -0
- package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts.map +1 -0
- package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.mjs +7 -0
- package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.mjs.map +1 -0
- package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.cjs +4 -15
- package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.cjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts +2 -2
- package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs +4 -15
- package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs +8 -5
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts +2 -2
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +8 -5
- 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 +2 -2
- package/dist/components/DictionaryEditor/NodeWrapper/index.d.ts +4 -2
- package/dist/components/DictionaryEditor/NodeWrapper/index.d.ts.map +1 -1
- package/dist/components/DictionaryEditor/NodeWrapper/index.mjs +2 -2
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs +102 -22
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts +3 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +102 -22
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +48 -114
- 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 +49 -115
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs +0 -51
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +0 -105
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs +0 -51
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs +6 -5
- 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 +7 -6
- package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +117 -78
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +120 -81
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +108 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +231 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +108 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.cjs +10 -2
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.mjs +11 -3
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.cjs +30 -0
- package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +66 -0
- package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs +30 -0
- package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs.map +1 -1
- package/dist/components/Form/Form.cjs +1 -1
- package/dist/components/Form/Form.mjs +1 -1
- package/dist/components/Form/elements/AutoSizeTextAreaElement.cjs +1 -1
- package/dist/components/Form/elements/AutoSizeTextAreaElement.mjs +1 -1
- package/dist/components/Form/elements/CheckboxElement.cjs +1 -1
- package/dist/components/Form/elements/CheckboxElement.mjs +1 -1
- package/dist/components/Form/elements/EditableFieldInputElement.cjs +1 -1
- package/dist/components/Form/elements/EditableFieldInputElement.d.ts +2 -2
- package/dist/components/Form/elements/EditableFieldInputElement.d.ts.map +1 -1
- package/dist/components/Form/elements/EditableFieldInputElement.mjs +1 -1
- package/dist/components/Form/elements/EditableFieldTextAreaElement.cjs +1 -1
- package/dist/components/Form/elements/EditableFieldTextAreaElement.d.ts +2 -2
- package/dist/components/Form/elements/EditableFieldTextAreaElement.d.ts.map +1 -1
- package/dist/components/Form/elements/EditableFieldTextAreaElement.mjs +1 -1
- package/dist/components/Form/elements/FormElement.cjs +1 -1
- package/dist/components/Form/elements/FormElement.mjs +1 -1
- package/dist/components/Form/elements/InputElement.cjs +1 -1
- package/dist/components/Form/elements/InputElement.d.ts +2 -2
- package/dist/components/Form/elements/InputElement.d.ts.map +1 -1
- package/dist/components/Form/elements/InputElement.mjs +1 -1
- package/dist/components/Form/elements/InputPasswordElement.cjs +1 -1
- package/dist/components/Form/elements/InputPasswordElement.d.ts +2 -2
- package/dist/components/Form/elements/InputPasswordElement.d.ts.map +1 -1
- package/dist/components/Form/elements/InputPasswordElement.mjs +1 -1
- package/dist/components/Form/elements/MultiselectElement.cjs +1 -1
- package/dist/components/Form/elements/MultiselectElement.mjs +1 -1
- package/dist/components/Form/elements/SelectElement.cjs +1 -1
- package/dist/components/Form/elements/SelectElement.mjs +1 -1
- package/dist/components/Form/elements/SwitchSelectorElement.cjs +1 -1
- package/dist/components/Form/elements/SwitchSelectorElement.mjs +1 -1
- package/dist/components/Form/elements/TextAreaElement.cjs +1 -1
- package/dist/components/Form/elements/TextAreaElement.d.ts +3 -3
- package/dist/components/Form/elements/TextAreaElement.d.ts.map +1 -1
- package/dist/components/Form/elements/TextAreaElement.mjs +1 -1
- package/dist/components/Form/elements/index.cjs +1 -1
- package/dist/components/Form/elements/index.mjs +1 -1
- package/dist/components/Form/index.cjs +1 -1
- package/dist/components/Form/index.mjs +1 -1
- package/dist/components/Form/layout/FormItemLayout.cjs +1 -1
- package/dist/components/Form/layout/FormItemLayout.mjs +1 -1
- package/dist/components/Form/layout/FormLabelLayout.cjs +12 -4
- package/dist/components/Form/layout/FormLabelLayout.cjs.map +1 -1
- package/dist/components/Form/layout/FormLabelLayout.d.ts.map +1 -1
- package/dist/components/Form/layout/FormLabelLayout.mjs +12 -4
- package/dist/components/Form/layout/FormLabelLayout.mjs.map +1 -1
- package/dist/components/Form/layout/index.cjs +1 -1
- package/dist/components/Form/layout/index.mjs +1 -1
- package/dist/components/Input/Input.cjs.map +1 -1
- package/dist/components/Input/Input.d.ts +1 -7
- package/dist/components/Input/Input.d.ts.map +1 -1
- package/dist/components/Input/Input.mjs.map +1 -1
- package/dist/components/TextArea/TextArea.cjs.map +1 -1
- package/dist/components/TextArea/TextArea.d.ts +1 -7
- package/dist/components/TextArea/TextArea.d.ts.map +1 -1
- package/dist/components/TextArea/TextArea.mjs.map +1 -1
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.mjs +1 -1
- package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
- package/dist/hooks/intlayerAPIHooks.d.ts +54 -54
- package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
- package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
- package/dist/hooks/useIntlayerAPI.d.ts +1 -1
- package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
- package/dist/{index-CVTE3oHq.js → index-CEoL1j7H.js} +48 -3
- package/dist/index-CEoL1j7H.js.map +1 -0
- package/dist/{index-BpCAhDMe.cjs → index-s_Ar0FDw.cjs} +48 -3
- package/dist/index-s_Ar0FDw.cjs.map +1 -0
- package/dist/utils/camelCase.cjs +2 -2
- package/dist/utils/camelCase.cjs.map +1 -1
- package/dist/utils/camelCase.d.ts +1 -1
- package/dist/utils/camelCase.d.ts.map +1 -1
- package/dist/utils/camelCase.mjs +2 -2
- package/dist/utils/camelCase.mjs.map +1 -1
- package/package.json +17 -19
- package/dist/Form-BpxW17v4.cjs.map +0 -1
- package/dist/Form-MjLzPGze.js.map +0 -1
- package/dist/index-BpCAhDMe.cjs.map +0 -1
- package/dist/index-CVTE3oHq.js.map +0 -1
|
@@ -18,7 +18,7 @@ require("@intlayer/api");
|
|
|
18
18
|
require("@hookform/resolvers");
|
|
19
19
|
require("react-hook-form");
|
|
20
20
|
require("../../Form/FormField.cjs");
|
|
21
|
-
const components_Form_layout_FormItemLayout = require("../../../Form-
|
|
21
|
+
const components_Form_layout_FormItemLayout = require("../../../Form-DJrUK3mm.cjs");
|
|
22
22
|
require("../../Auth/SignInForm/signIn.content.cjs");
|
|
23
23
|
require("zod");
|
|
24
24
|
require("../../Auth/SignInForm/useSignInSchema.content.cjs");
|
|
@@ -28,7 +28,7 @@ require("../../Auth/ChangePasswordForm/changePasswordForm.content.cjs");
|
|
|
28
28
|
require("../../Auth/ChangePasswordForm/useChangePasswordSchema.content.cjs");
|
|
29
29
|
require("../../Auth/ResetPasswordForm/resetPasswordContent.content.cjs");
|
|
30
30
|
require("../../Auth/ResetPasswordForm/useResetPasswordSchema.content.cjs");
|
|
31
|
-
require("../../Modal/Modal.cjs");
|
|
31
|
+
const components_Modal_Modal = require("../../Modal/Modal.cjs");
|
|
32
32
|
require("@intlayer/config/built");
|
|
33
33
|
require("../../Auth/VerifyEmailForm/index.content.cjs");
|
|
34
34
|
require("../../Auth/DefineNewPasswordForm/defineNewPasswordForm.content.cjs");
|
|
@@ -40,26 +40,25 @@ const SaveForm = ({
|
|
|
40
40
|
className,
|
|
41
41
|
...props
|
|
42
42
|
}) => {
|
|
43
|
+
const [isFormatAlertModalOpen, setIsFormatAlertModalOpen] = ReactExports.useState(false);
|
|
43
44
|
const { setLocaleDictionary } = editorReact.useDictionariesRecordActions();
|
|
44
45
|
const { writeDictionary, isLoading: isWriting } = hooks_intlayerAPIHooks.useWriteDictionary();
|
|
45
46
|
const { pushDictionaries, isLoading: isPushing } = hooks_intlayerAPIHooks.usePushDictionaries();
|
|
46
47
|
const isLoading = isWriting || isPushing;
|
|
48
|
+
const isJsonFormat = mode.includes("local") && dictionary.filePath?.endsWith(".json");
|
|
47
49
|
const { editedContent, restoreEditedContent } = editorReact.useEditedContent();
|
|
48
|
-
const {
|
|
50
|
+
const {
|
|
51
|
+
resetButton,
|
|
52
|
+
saveButton,
|
|
53
|
+
publishButton,
|
|
54
|
+
downloadButton,
|
|
55
|
+
confirmation
|
|
56
|
+
} = reactIntlayer.useDictionary(components_DictionaryFieldEditor_SaveForm_saveForm_content.saveDictionaryContent);
|
|
49
57
|
const { isAuthenticated } = components_Auth_useAuth_index.useAuth();
|
|
50
|
-
const editedDictionary =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
)
|
|
54
|
-
const isEdited = ReactExports.useMemo(
|
|
55
|
-
() => editedDictionary && JSON.stringify(editedDictionary) !== JSON.stringify(dictionary),
|
|
56
|
-
[editedDictionary, dictionary, mode]
|
|
57
|
-
);
|
|
58
|
-
const isLocalDictionary = ReactExports.useMemo(
|
|
59
|
-
() => typeof dictionary?._id === "undefined",
|
|
60
|
-
[dictionary]
|
|
61
|
-
);
|
|
62
|
-
const handleSaveDictionary = async () => {
|
|
58
|
+
const editedDictionary = editedContent?.[dictionary.key];
|
|
59
|
+
const isEdited = editedDictionary && JSON.stringify(editedDictionary) !== JSON.stringify(dictionary);
|
|
60
|
+
const isLocalDictionary = typeof dictionary?._id === "undefined";
|
|
61
|
+
const handleSaveDictionaryConfirmation = async () => {
|
|
63
62
|
if (!editedContent?.[dictionary.key]) return;
|
|
64
63
|
const updatedDictionary = {
|
|
65
64
|
...dictionary,
|
|
@@ -83,68 +82,108 @@ const SaveForm = ({
|
|
|
83
82
|
}
|
|
84
83
|
});
|
|
85
84
|
};
|
|
86
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
{
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
85
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
86
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
87
|
+
components_Modal_Modal.Modal,
|
|
88
|
+
{
|
|
89
|
+
isOpen: isFormatAlertModalOpen,
|
|
90
|
+
title: confirmation.title.value,
|
|
91
|
+
size: "md",
|
|
92
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("form", { className: "size-full px-3", children: [
|
|
93
|
+
isJsonFormat ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-neutral py-4 text-sm", children: confirmation.message }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-neutral py-4 text-sm", children: confirmation.differentFormatMessage }),
|
|
94
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-12 flex justify-end gap-2 max-md:flex-col", children: [
|
|
95
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
96
|
+
components_Form_layout_FormItemLayout.Form.Button,
|
|
97
|
+
{
|
|
98
|
+
label: confirmation.cancelButton.label.value,
|
|
99
|
+
disabled: !isEdited || isLoading,
|
|
100
|
+
color: "text",
|
|
101
|
+
className: "max-md:w-full",
|
|
102
|
+
variant: "outline",
|
|
103
|
+
onClick: () => setIsFormatAlertModalOpen(false),
|
|
104
|
+
children: confirmation.cancelButton.text
|
|
105
|
+
}
|
|
106
|
+
),
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
108
|
+
components_Form_layout_FormItemLayout.Form.Button,
|
|
109
|
+
{
|
|
110
|
+
label: confirmation.confirmButton.label.value,
|
|
111
|
+
disabled: !isEdited || isLoading,
|
|
112
|
+
Icon: lucideReact.Save,
|
|
113
|
+
color: "text",
|
|
114
|
+
className: "max-md:w-full",
|
|
115
|
+
isLoading: isPushing,
|
|
116
|
+
onClick: handleSaveDictionaryConfirmation,
|
|
117
|
+
children: confirmation.confirmButton.text
|
|
118
|
+
}
|
|
119
|
+
)
|
|
120
|
+
] })
|
|
121
|
+
] })
|
|
122
|
+
}
|
|
123
|
+
),
|
|
124
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
125
|
+
"form",
|
|
126
|
+
{
|
|
127
|
+
className: utils_cn.cn("flex justify-end gap-2 max-md:flex-col", className),
|
|
128
|
+
...props,
|
|
129
|
+
children: [
|
|
130
|
+
isEdited && /* @__PURE__ */ jsxRuntime.jsx(
|
|
131
|
+
components_Form_layout_FormItemLayout.Form.Button,
|
|
132
|
+
{
|
|
133
|
+
label: resetButton.label.value,
|
|
134
|
+
disabled: !isEdited,
|
|
135
|
+
Icon: lucideReact.RotateCcw,
|
|
136
|
+
variant: "outline",
|
|
137
|
+
color: "text",
|
|
138
|
+
className: "max-md:w-full",
|
|
139
|
+
onClick: () => restoreEditedContent(dictionary.key),
|
|
140
|
+
children: resetButton.text
|
|
141
|
+
}
|
|
142
|
+
),
|
|
143
|
+
mode.includes("local") && /* @__PURE__ */ jsxRuntime.jsx(
|
|
144
|
+
components_Form_layout_FormItemLayout.Form.Button,
|
|
145
|
+
{
|
|
146
|
+
label: downloadButton.label.value,
|
|
147
|
+
disabled: !isEdited || isLoading,
|
|
148
|
+
Icon: lucideReact.Download,
|
|
149
|
+
color: "text",
|
|
150
|
+
variant: isAuthenticated ? "outline" : "default",
|
|
151
|
+
className: "max-md:w-full",
|
|
152
|
+
isLoading: isWriting,
|
|
153
|
+
onClick: () => setIsFormatAlertModalOpen(true),
|
|
154
|
+
children: downloadButton.text
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
mode.includes("remote") && isAuthenticated && isLocalDictionary && /* @__PURE__ */ jsxRuntime.jsx(
|
|
158
|
+
components_Form_layout_FormItemLayout.Form.Button,
|
|
159
|
+
{
|
|
160
|
+
label: publishButton.label.value,
|
|
161
|
+
disabled: isLoading,
|
|
162
|
+
Icon: lucideReact.ArrowUpFromLine,
|
|
163
|
+
color: "text",
|
|
164
|
+
className: "max-md:w-full",
|
|
165
|
+
isLoading: isPushing,
|
|
166
|
+
onClick: handlePushDictionary,
|
|
167
|
+
children: publishButton.text
|
|
168
|
+
}
|
|
169
|
+
),
|
|
170
|
+
mode.includes("remote") && isAuthenticated && !isLocalDictionary && isEdited && /* @__PURE__ */ jsxRuntime.jsx(
|
|
171
|
+
components_Form_layout_FormItemLayout.Form.Button,
|
|
172
|
+
{
|
|
173
|
+
label: saveButton.label.value,
|
|
174
|
+
disabled: !isEdited || isLoading,
|
|
175
|
+
Icon: lucideReact.Save,
|
|
176
|
+
color: "text",
|
|
177
|
+
className: "max-md:w-full",
|
|
178
|
+
isLoading: isPushing,
|
|
179
|
+
onClick: handlePushDictionary,
|
|
180
|
+
children: saveButton.text
|
|
181
|
+
}
|
|
182
|
+
)
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
] });
|
|
148
187
|
};
|
|
149
188
|
exports.SaveForm = SaveForm;
|
|
150
189
|
//# sourceMappingURL=SaveForm.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx"],"sourcesContent":["'use client';\n\nimport type { Dictionary as DistantDictionary } from '@intlayer/backend';\nimport type { Dictionary } from '@intlayer/core';\nimport {\n useDictionariesRecordActions,\n useEditedContent,\n} from '@intlayer/editor-react';\nimport { ArrowUpFromLine, Download, RotateCcw, Save } from 'lucide-react';\nimport {\n type DetailedHTMLProps,\n type FormHTMLAttributes,\n useMemo,\n type FC,\n} from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { usePushDictionaries, useWriteDictionary } from '../../../hooks';\nimport { cn } from '../../../utils/cn';\nimport { useAuth } from '../../Auth';\nimport { Form } from '../../Form';\nimport { saveDictionaryContent } from './saveForm.content';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n mode: ('local' | 'remote')[];\n} & DetailedHTMLProps<FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>;\n\nexport const SaveForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n mode,\n className,\n ...props\n}) => {\n const { setLocaleDictionary } = useDictionariesRecordActions();\n const { writeDictionary, isLoading: isWriting } = useWriteDictionary();\n const { pushDictionaries, isLoading: isPushing } = usePushDictionaries();\n const isLoading = isWriting || isPushing;\n\n const { editedContent, restoreEditedContent } = useEditedContent();\n const { resetButton, saveButton, publishButton, downloadButton } =\n useDictionary(saveDictionaryContent);\n const { isAuthenticated } = useAuth();\n\n const editedDictionary = useMemo(\n () => editedContent?.[dictionary.key],\n [editedContent, dictionary.key]\n );\n\n const isEdited = useMemo(\n () =>\n editedDictionary &&\n JSON.stringify(editedDictionary) !== JSON.stringify(dictionary),\n [editedDictionary, dictionary, mode]\n );\n\n const isLocalDictionary = useMemo(\n () => typeof (dictionary as DistantDictionary)?._id === 'undefined',\n [dictionary]\n );\n\n const handleSaveDictionary = async () => {\n if (!editedContent?.[dictionary.key]) return;\n\n const updatedDictionary = {\n ...dictionary,\n ...editedContent?.[dictionary.key],\n };\n\n await writeDictionary(updatedDictionary).then(() => {\n setLocaleDictionary(editedContent?.[dictionary.key]);\n restoreEditedContent(dictionary.key);\n });\n };\n\n const handlePushDictionary = async () => {\n if (!editedContent?.[dictionary.key]) return;\n\n const updatedDictionary = {\n ...dictionary,\n ...editedContent?.[dictionary.key],\n };\n\n await pushDictionaries([updatedDictionary]).then((res) => {\n if (res) {\n setLocaleDictionary(editedContent?.[dictionary.key]);\n restoreEditedContent(dictionary.key);\n }\n });\n };\n\n return (\n <form\n className={cn('flex justify-end gap-2 max-md:flex-col', className)}\n {...props}\n >\n {isEdited && (\n <Form.Button\n label={resetButton.label.value}\n disabled={!isEdited}\n Icon={RotateCcw}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={() => restoreEditedContent(dictionary.key)}\n >\n {resetButton.text}\n </Form.Button>\n )}\n {mode.includes('local') && (\n <Form.Button\n label={downloadButton.label.value}\n disabled={!isEdited || isLoading}\n Icon={Download}\n color=\"text\"\n variant={isAuthenticated ? 'outline' : 'default'}\n className=\"max-md:w-full\"\n isLoading={isWriting}\n onClick={handleSaveDictionary}\n >\n {downloadButton.text}\n </Form.Button>\n )}\n {mode.includes('remote') && isAuthenticated && isLocalDictionary && (\n <Form.Button\n label={publishButton.label.value}\n disabled={isLoading}\n Icon={ArrowUpFromLine}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isPushing}\n onClick={handlePushDictionary}\n >\n {publishButton.text}\n </Form.Button>\n )}\n {mode.includes('remote') &&\n isAuthenticated &&\n !isLocalDictionary &&\n isEdited && (\n <Form.Button\n label={saveButton.label.value}\n disabled={!isEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isPushing}\n onClick={handlePushDictionary}\n >\n {saveButton.text}\n </Form.Button>\n )}\n </form>\n );\n};\n"],"names":["useDictionariesRecordActions","useWriteDictionary","usePushDictionaries","useEditedContent","useDictionary","saveDictionaryContent","useAuth","useMemo","jsxs","cn","jsx","Form","RotateCcw","Download","ArrowUpFromLine","Save"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SaveForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx"],"sourcesContent":["'use client';\n\nimport type { Dictionary as DistantDictionary } from '@intlayer/backend';\nimport type { Dictionary } from '@intlayer/core';\nimport {\n useDictionariesRecordActions,\n useEditedContent,\n} from '@intlayer/editor-react';\nimport { ArrowUpFromLine, Download, RotateCcw, Save } from 'lucide-react';\nimport {\n type DetailedHTMLProps,\n type FormHTMLAttributes,\n type FC,\n useState,\n} from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { usePushDictionaries, useWriteDictionary } from '../../../hooks';\nimport { cn } from '../../../utils/cn';\nimport { useAuth } from '../../Auth';\nimport { Form } from '../../Form';\nimport { saveDictionaryContent } from './saveForm.content';\nimport { Modal } from '../../../components/Modal';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n mode: ('local' | 'remote')[];\n} & DetailedHTMLProps<FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>;\n\nexport const SaveForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n mode,\n className,\n ...props\n}) => {\n const [isFormatAlertModalOpen, setIsFormatAlertModalOpen] = useState(false);\n const { setLocaleDictionary } = useDictionariesRecordActions();\n const { writeDictionary, isLoading: isWriting } = useWriteDictionary();\n const { pushDictionaries, isLoading: isPushing } = usePushDictionaries();\n const isLoading = isWriting || isPushing;\n const isJsonFormat =\n mode.includes('local') && dictionary.filePath?.endsWith('.json');\n\n const { editedContent, restoreEditedContent } = useEditedContent();\n const {\n resetButton,\n saveButton,\n publishButton,\n downloadButton,\n confirmation,\n } = useDictionary(saveDictionaryContent);\n const { isAuthenticated } = useAuth();\n\n const editedDictionary = editedContent?.[dictionary.key];\n\n const isEdited =\n editedDictionary &&\n JSON.stringify(editedDictionary) !== JSON.stringify(dictionary);\n\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const handleSaveDictionaryConfirmation = async () => {\n if (!editedContent?.[dictionary.key]) return;\n\n const updatedDictionary = {\n ...dictionary,\n ...editedContent?.[dictionary.key],\n };\n\n await writeDictionary(updatedDictionary).then(() => {\n setLocaleDictionary(editedContent?.[dictionary.key]);\n restoreEditedContent(dictionary.key);\n });\n };\n\n const handlePushDictionary = async () => {\n if (!editedContent?.[dictionary.key]) return;\n\n const updatedDictionary = {\n ...dictionary,\n ...editedContent?.[dictionary.key],\n };\n\n await pushDictionaries([updatedDictionary]).then((res) => {\n if (res) {\n setLocaleDictionary(editedContent?.[dictionary.key]);\n restoreEditedContent(dictionary.key);\n }\n });\n };\n\n return (\n <>\n <Modal\n isOpen={isFormatAlertModalOpen}\n title={confirmation.title.value}\n size=\"md\"\n >\n <form className=\"size-full px-3\">\n {isJsonFormat ? (\n <p className=\"text-neutral py-4 text-sm\">{confirmation.message}</p>\n ) : (\n <p className=\"text-neutral py-4 text-sm\">\n {confirmation.differentFormatMessage}\n </p>\n )}\n <div className=\"mt-12 flex justify-end gap-2 max-md:flex-col\">\n <Form.Button\n label={confirmation.cancelButton.label.value}\n disabled={!isEdited || isLoading}\n color=\"text\"\n className=\"max-md:w-full\"\n variant=\"outline\"\n onClick={() => setIsFormatAlertModalOpen(false)}\n >\n {confirmation.cancelButton.text}\n </Form.Button>\n <Form.Button\n label={confirmation.confirmButton.label.value}\n disabled={!isEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isPushing}\n onClick={handleSaveDictionaryConfirmation}\n >\n {confirmation.confirmButton.text}\n </Form.Button>\n </div>\n </form>\n </Modal>\n <form\n className={cn('flex justify-end gap-2 max-md:flex-col', className)}\n {...props}\n >\n {isEdited && (\n <Form.Button\n label={resetButton.label.value}\n disabled={!isEdited}\n Icon={RotateCcw}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={() => restoreEditedContent(dictionary.key)}\n >\n {resetButton.text}\n </Form.Button>\n )}\n {mode.includes('local') && (\n <Form.Button\n label={downloadButton.label.value}\n disabled={!isEdited || isLoading}\n Icon={Download}\n color=\"text\"\n variant={isAuthenticated ? 'outline' : 'default'}\n className=\"max-md:w-full\"\n isLoading={isWriting}\n onClick={() => setIsFormatAlertModalOpen(true)}\n >\n {downloadButton.text}\n </Form.Button>\n )}\n {mode.includes('remote') && isAuthenticated && isLocalDictionary && (\n <Form.Button\n label={publishButton.label.value}\n disabled={isLoading}\n Icon={ArrowUpFromLine}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isPushing}\n onClick={handlePushDictionary}\n >\n {publishButton.text}\n </Form.Button>\n )}\n {mode.includes('remote') &&\n isAuthenticated &&\n !isLocalDictionary &&\n isEdited && (\n <Form.Button\n label={saveButton.label.value}\n disabled={!isEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isPushing}\n onClick={handlePushDictionary}\n >\n {saveButton.text}\n </Form.Button>\n )}\n </form>\n </>\n );\n};\n"],"names":["useState","useDictionariesRecordActions","useWriteDictionary","usePushDictionaries","useEditedContent","useDictionary","saveDictionaryContent","useAuth","jsxs","Fragment","jsx","Modal","Form","Save","cn","RotateCcw","Download","ArrowUpFromLine"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveForm.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"SaveForm.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AASf,KAAK,sBAAsB,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC;CAC9B,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;AAE5E,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAsK/C,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useDictionariesRecordActions, useEditedContent } from "@intlayer/editor-react";
|
|
4
|
-
import { RotateCcw, Download, ArrowUpFromLine
|
|
5
|
-
import {
|
|
4
|
+
import { Save, RotateCcw, Download, ArrowUpFromLine } from "lucide-react";
|
|
5
|
+
import { useState } from "react";
|
|
6
6
|
import { useDictionary } from "react-intlayer";
|
|
7
7
|
import "../../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
|
|
8
8
|
import "../../../hooks/useAsync/useAsyncStateStore.mjs";
|
|
@@ -16,7 +16,7 @@ import "@intlayer/api";
|
|
|
16
16
|
import "@hookform/resolvers";
|
|
17
17
|
import "react-hook-form";
|
|
18
18
|
import "../../Form/FormField.mjs";
|
|
19
|
-
import { F as Form } from "../../../Form-
|
|
19
|
+
import { F as Form } from "../../../Form-CriPBaZk.js";
|
|
20
20
|
import "../../Auth/SignInForm/signIn.content.mjs";
|
|
21
21
|
import "zod";
|
|
22
22
|
import "../../Auth/SignInForm/useSignInSchema.content.mjs";
|
|
@@ -26,7 +26,7 @@ import "../../Auth/ChangePasswordForm/changePasswordForm.content.mjs";
|
|
|
26
26
|
import "../../Auth/ChangePasswordForm/useChangePasswordSchema.content.mjs";
|
|
27
27
|
import "../../Auth/ResetPasswordForm/resetPasswordContent.content.mjs";
|
|
28
28
|
import "../../Auth/ResetPasswordForm/useResetPasswordSchema.content.mjs";
|
|
29
|
-
import "../../Modal/Modal.mjs";
|
|
29
|
+
import { Modal } from "../../Modal/Modal.mjs";
|
|
30
30
|
import "@intlayer/config/built";
|
|
31
31
|
import "../../Auth/VerifyEmailForm/index.content.mjs";
|
|
32
32
|
import "../../Auth/DefineNewPasswordForm/defineNewPasswordForm.content.mjs";
|
|
@@ -38,26 +38,25 @@ const SaveForm = ({
|
|
|
38
38
|
className,
|
|
39
39
|
...props
|
|
40
40
|
}) => {
|
|
41
|
+
const [isFormatAlertModalOpen, setIsFormatAlertModalOpen] = useState(false);
|
|
41
42
|
const { setLocaleDictionary } = useDictionariesRecordActions();
|
|
42
43
|
const { writeDictionary, isLoading: isWriting } = useWriteDictionary();
|
|
43
44
|
const { pushDictionaries, isLoading: isPushing } = usePushDictionaries();
|
|
44
45
|
const isLoading = isWriting || isPushing;
|
|
46
|
+
const isJsonFormat = mode.includes("local") && dictionary.filePath?.endsWith(".json");
|
|
45
47
|
const { editedContent, restoreEditedContent } = useEditedContent();
|
|
46
|
-
const {
|
|
48
|
+
const {
|
|
49
|
+
resetButton,
|
|
50
|
+
saveButton,
|
|
51
|
+
publishButton,
|
|
52
|
+
downloadButton,
|
|
53
|
+
confirmation
|
|
54
|
+
} = useDictionary(saveDictionaryContent);
|
|
47
55
|
const { isAuthenticated } = useAuth();
|
|
48
|
-
const editedDictionary =
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
)
|
|
52
|
-
const isEdited = useMemo(
|
|
53
|
-
() => editedDictionary && JSON.stringify(editedDictionary) !== JSON.stringify(dictionary),
|
|
54
|
-
[editedDictionary, dictionary, mode]
|
|
55
|
-
);
|
|
56
|
-
const isLocalDictionary = useMemo(
|
|
57
|
-
() => typeof dictionary?._id === "undefined",
|
|
58
|
-
[dictionary]
|
|
59
|
-
);
|
|
60
|
-
const handleSaveDictionary = async () => {
|
|
56
|
+
const editedDictionary = editedContent?.[dictionary.key];
|
|
57
|
+
const isEdited = editedDictionary && JSON.stringify(editedDictionary) !== JSON.stringify(dictionary);
|
|
58
|
+
const isLocalDictionary = typeof dictionary?._id === "undefined";
|
|
59
|
+
const handleSaveDictionaryConfirmation = async () => {
|
|
61
60
|
if (!editedContent?.[dictionary.key]) return;
|
|
62
61
|
const updatedDictionary = {
|
|
63
62
|
...dictionary,
|
|
@@ -81,68 +80,108 @@ const SaveForm = ({
|
|
|
81
80
|
}
|
|
82
81
|
});
|
|
83
82
|
};
|
|
84
|
-
return /* @__PURE__ */ jsxs(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
83
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
84
|
+
/* @__PURE__ */ jsx(
|
|
85
|
+
Modal,
|
|
86
|
+
{
|
|
87
|
+
isOpen: isFormatAlertModalOpen,
|
|
88
|
+
title: confirmation.title.value,
|
|
89
|
+
size: "md",
|
|
90
|
+
children: /* @__PURE__ */ jsxs("form", { className: "size-full px-3", children: [
|
|
91
|
+
isJsonFormat ? /* @__PURE__ */ jsx("p", { className: "text-neutral py-4 text-sm", children: confirmation.message }) : /* @__PURE__ */ jsx("p", { className: "text-neutral py-4 text-sm", children: confirmation.differentFormatMessage }),
|
|
92
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-12 flex justify-end gap-2 max-md:flex-col", children: [
|
|
93
|
+
/* @__PURE__ */ jsx(
|
|
94
|
+
Form.Button,
|
|
95
|
+
{
|
|
96
|
+
label: confirmation.cancelButton.label.value,
|
|
97
|
+
disabled: !isEdited || isLoading,
|
|
98
|
+
color: "text",
|
|
99
|
+
className: "max-md:w-full",
|
|
100
|
+
variant: "outline",
|
|
101
|
+
onClick: () => setIsFormatAlertModalOpen(false),
|
|
102
|
+
children: confirmation.cancelButton.text
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
/* @__PURE__ */ jsx(
|
|
106
|
+
Form.Button,
|
|
107
|
+
{
|
|
108
|
+
label: confirmation.confirmButton.label.value,
|
|
109
|
+
disabled: !isEdited || isLoading,
|
|
110
|
+
Icon: Save,
|
|
111
|
+
color: "text",
|
|
112
|
+
className: "max-md:w-full",
|
|
113
|
+
isLoading: isPushing,
|
|
114
|
+
onClick: handleSaveDictionaryConfirmation,
|
|
115
|
+
children: confirmation.confirmButton.text
|
|
116
|
+
}
|
|
117
|
+
)
|
|
118
|
+
] })
|
|
119
|
+
] })
|
|
120
|
+
}
|
|
121
|
+
),
|
|
122
|
+
/* @__PURE__ */ jsxs(
|
|
123
|
+
"form",
|
|
124
|
+
{
|
|
125
|
+
className: cn("flex justify-end gap-2 max-md:flex-col", className),
|
|
126
|
+
...props,
|
|
127
|
+
children: [
|
|
128
|
+
isEdited && /* @__PURE__ */ jsx(
|
|
129
|
+
Form.Button,
|
|
130
|
+
{
|
|
131
|
+
label: resetButton.label.value,
|
|
132
|
+
disabled: !isEdited,
|
|
133
|
+
Icon: RotateCcw,
|
|
134
|
+
variant: "outline",
|
|
135
|
+
color: "text",
|
|
136
|
+
className: "max-md:w-full",
|
|
137
|
+
onClick: () => restoreEditedContent(dictionary.key),
|
|
138
|
+
children: resetButton.text
|
|
139
|
+
}
|
|
140
|
+
),
|
|
141
|
+
mode.includes("local") && /* @__PURE__ */ jsx(
|
|
142
|
+
Form.Button,
|
|
143
|
+
{
|
|
144
|
+
label: downloadButton.label.value,
|
|
145
|
+
disabled: !isEdited || isLoading,
|
|
146
|
+
Icon: Download,
|
|
147
|
+
color: "text",
|
|
148
|
+
variant: isAuthenticated ? "outline" : "default",
|
|
149
|
+
className: "max-md:w-full",
|
|
150
|
+
isLoading: isWriting,
|
|
151
|
+
onClick: () => setIsFormatAlertModalOpen(true),
|
|
152
|
+
children: downloadButton.text
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
mode.includes("remote") && isAuthenticated && isLocalDictionary && /* @__PURE__ */ jsx(
|
|
156
|
+
Form.Button,
|
|
157
|
+
{
|
|
158
|
+
label: publishButton.label.value,
|
|
159
|
+
disabled: isLoading,
|
|
160
|
+
Icon: ArrowUpFromLine,
|
|
161
|
+
color: "text",
|
|
162
|
+
className: "max-md:w-full",
|
|
163
|
+
isLoading: isPushing,
|
|
164
|
+
onClick: handlePushDictionary,
|
|
165
|
+
children: publishButton.text
|
|
166
|
+
}
|
|
167
|
+
),
|
|
168
|
+
mode.includes("remote") && isAuthenticated && !isLocalDictionary && isEdited && /* @__PURE__ */ jsx(
|
|
169
|
+
Form.Button,
|
|
170
|
+
{
|
|
171
|
+
label: saveButton.label.value,
|
|
172
|
+
disabled: !isEdited || isLoading,
|
|
173
|
+
Icon: Save,
|
|
174
|
+
color: "text",
|
|
175
|
+
className: "max-md:w-full",
|
|
176
|
+
isLoading: isPushing,
|
|
177
|
+
onClick: handlePushDictionary,
|
|
178
|
+
children: saveButton.text
|
|
179
|
+
}
|
|
180
|
+
)
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
)
|
|
184
|
+
] });
|
|
146
185
|
};
|
|
147
186
|
export {
|
|
148
187
|
SaveForm
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx"],"sourcesContent":["'use client';\n\nimport type { Dictionary as DistantDictionary } from '@intlayer/backend';\nimport type { Dictionary } from '@intlayer/core';\nimport {\n useDictionariesRecordActions,\n useEditedContent,\n} from '@intlayer/editor-react';\nimport { ArrowUpFromLine, Download, RotateCcw, Save } from 'lucide-react';\nimport {\n type DetailedHTMLProps,\n type FormHTMLAttributes,\n
|
|
1
|
+
{"version":3,"file":"SaveForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx"],"sourcesContent":["'use client';\n\nimport type { Dictionary as DistantDictionary } from '@intlayer/backend';\nimport type { Dictionary } from '@intlayer/core';\nimport {\n useDictionariesRecordActions,\n useEditedContent,\n} from '@intlayer/editor-react';\nimport { ArrowUpFromLine, Download, RotateCcw, Save } from 'lucide-react';\nimport {\n type DetailedHTMLProps,\n type FormHTMLAttributes,\n type FC,\n useState,\n} from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { usePushDictionaries, useWriteDictionary } from '../../../hooks';\nimport { cn } from '../../../utils/cn';\nimport { useAuth } from '../../Auth';\nimport { Form } from '../../Form';\nimport { saveDictionaryContent } from './saveForm.content';\nimport { Modal } from '../../../components/Modal';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n mode: ('local' | 'remote')[];\n} & DetailedHTMLProps<FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>;\n\nexport const SaveForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n mode,\n className,\n ...props\n}) => {\n const [isFormatAlertModalOpen, setIsFormatAlertModalOpen] = useState(false);\n const { setLocaleDictionary } = useDictionariesRecordActions();\n const { writeDictionary, isLoading: isWriting } = useWriteDictionary();\n const { pushDictionaries, isLoading: isPushing } = usePushDictionaries();\n const isLoading = isWriting || isPushing;\n const isJsonFormat =\n mode.includes('local') && dictionary.filePath?.endsWith('.json');\n\n const { editedContent, restoreEditedContent } = useEditedContent();\n const {\n resetButton,\n saveButton,\n publishButton,\n downloadButton,\n confirmation,\n } = useDictionary(saveDictionaryContent);\n const { isAuthenticated } = useAuth();\n\n const editedDictionary = editedContent?.[dictionary.key];\n\n const isEdited =\n editedDictionary &&\n JSON.stringify(editedDictionary) !== JSON.stringify(dictionary);\n\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const handleSaveDictionaryConfirmation = async () => {\n if (!editedContent?.[dictionary.key]) return;\n\n const updatedDictionary = {\n ...dictionary,\n ...editedContent?.[dictionary.key],\n };\n\n await writeDictionary(updatedDictionary).then(() => {\n setLocaleDictionary(editedContent?.[dictionary.key]);\n restoreEditedContent(dictionary.key);\n });\n };\n\n const handlePushDictionary = async () => {\n if (!editedContent?.[dictionary.key]) return;\n\n const updatedDictionary = {\n ...dictionary,\n ...editedContent?.[dictionary.key],\n };\n\n await pushDictionaries([updatedDictionary]).then((res) => {\n if (res) {\n setLocaleDictionary(editedContent?.[dictionary.key]);\n restoreEditedContent(dictionary.key);\n }\n });\n };\n\n return (\n <>\n <Modal\n isOpen={isFormatAlertModalOpen}\n title={confirmation.title.value}\n size=\"md\"\n >\n <form className=\"size-full px-3\">\n {isJsonFormat ? (\n <p className=\"text-neutral py-4 text-sm\">{confirmation.message}</p>\n ) : (\n <p className=\"text-neutral py-4 text-sm\">\n {confirmation.differentFormatMessage}\n </p>\n )}\n <div className=\"mt-12 flex justify-end gap-2 max-md:flex-col\">\n <Form.Button\n label={confirmation.cancelButton.label.value}\n disabled={!isEdited || isLoading}\n color=\"text\"\n className=\"max-md:w-full\"\n variant=\"outline\"\n onClick={() => setIsFormatAlertModalOpen(false)}\n >\n {confirmation.cancelButton.text}\n </Form.Button>\n <Form.Button\n label={confirmation.confirmButton.label.value}\n disabled={!isEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isPushing}\n onClick={handleSaveDictionaryConfirmation}\n >\n {confirmation.confirmButton.text}\n </Form.Button>\n </div>\n </form>\n </Modal>\n <form\n className={cn('flex justify-end gap-2 max-md:flex-col', className)}\n {...props}\n >\n {isEdited && (\n <Form.Button\n label={resetButton.label.value}\n disabled={!isEdited}\n Icon={RotateCcw}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={() => restoreEditedContent(dictionary.key)}\n >\n {resetButton.text}\n </Form.Button>\n )}\n {mode.includes('local') && (\n <Form.Button\n label={downloadButton.label.value}\n disabled={!isEdited || isLoading}\n Icon={Download}\n color=\"text\"\n variant={isAuthenticated ? 'outline' : 'default'}\n className=\"max-md:w-full\"\n isLoading={isWriting}\n onClick={() => setIsFormatAlertModalOpen(true)}\n >\n {downloadButton.text}\n </Form.Button>\n )}\n {mode.includes('remote') && isAuthenticated && isLocalDictionary && (\n <Form.Button\n label={publishButton.label.value}\n disabled={isLoading}\n Icon={ArrowUpFromLine}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isPushing}\n onClick={handlePushDictionary}\n >\n {publishButton.text}\n </Form.Button>\n )}\n {mode.includes('remote') &&\n isAuthenticated &&\n !isLocalDictionary &&\n isEdited && (\n <Form.Button\n label={saveButton.label.value}\n disabled={!isEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isPushing}\n onClick={handlePushDictionary}\n >\n {saveButton.text}\n </Form.Button>\n )}\n </form>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|