@team-monolith/cds 1.84.6 → 1.84.8

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.
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { jsx as _jsx, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
10
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
11
11
  /** @jsxImportSource @emotion/react */
12
12
  import { useContext, useEffect, useRef } from "react";
13
13
  import moment from "moment";
@@ -53,7 +53,7 @@ export function UploadFileDialog({ open, onClose, onChange, }) {
53
53
  inputRef.current.click();
54
54
  }
55
55
  }, [open]);
56
- return (_jsx(_Fragment, { children: _jsx(HiddenInput, { ref: inputRef, type: "file", accept: "*", onChange: handleFileChange }) }));
56
+ return (_jsx(HiddenInput, { ref: inputRef, type: "file", accept: "*", onChange: handleFileChange }));
57
57
  }
58
58
  const HiddenInput = styled.input `
59
59
  display: none;
@@ -43,7 +43,7 @@ export function FileComponent({ fileName, fileSize, nodeKey, fileUrl, fileUpload
43
43
  }
44
44
  return false;
45
45
  }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW)), [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected]);
46
- return (_jsx(_Fragment, { children: isEditable ? (_jsx(FileDetailContainer, Object.assign({ isSelected: isSelected }, { children: _jsxs(FileInfo, Object.assign({ ref: ref }, { children: [_jsx(IconContainer, { children: getFileIcon(fileName) }), _jsx(FileName, { children: _jsx(OverflowTooltip, { text: fileName }) }), _jsx(FileOptionalInfo, { children: fileUploadDate }), _jsxs(FileSize, { children: [(fileSize / (1024 * 1024)).toFixed(1), " MB"] })] })) }))) : (_jsx(FileDownloadButton, { fileName: fileName, fileUrl: fileUrl, fileSize: fileSize })) }));
46
+ return (_jsx(_Fragment, { children: isEditable ? (_jsx(FileDetailContainer, Object.assign({ isSelected: isSelected, ref: ref }, { children: _jsxs(FileInfo, { children: [_jsx(IconContainer, { children: getFileIcon(fileName) }), _jsx(FileName, { children: _jsx(OverflowTooltip, { text: fileName }) }), _jsx(FileOptionalInfo, { children: fileUploadDate }), _jsxs(FileSize, { children: [(fileSize / (1024 * 1024)).toFixed(1), " MB"] })] }) }))) : (_jsx(FileDownloadButton, { fileName: fileName, fileUrl: fileUrl, fileSize: fileSize })) }));
47
47
  }
48
48
  export const FileName = styled.div `
49
49
  flex: 1;
@@ -44,8 +44,7 @@ export function FileDownloadButton({ fileName, fileSize, fileUrl, }) {
44
44
  document.body.removeChild(link);
45
45
  URL.revokeObjectURL(blobUrl);
46
46
  }
47
- catch (error) {
48
- console.error("다운로드 실패:", error);
47
+ catch (_b) {
49
48
  showFileError === null || showFileError === void 0 ? void 0 : showFileError("download", "파일을 다운로드할 수 없어요.");
50
49
  }
51
50
  });
@@ -142,6 +142,7 @@ export function ComponentAdderPlugin(props) {
142
142
  const getContextMenuOptions = useContextMenuOptions({
143
143
  isSheetEnabled,
144
144
  isQuizEnabled,
145
+ showFileUploadBlock,
145
146
  });
146
147
  const filteredOptions = options.filter((option) => {
147
148
  if (!query) {
@@ -155,7 +156,7 @@ export function ComponentAdderPlugin(props) {
155
156
  const { onDragStart, onDragEnd, targetLineRef } = useDraggableBlockMenu(editor, anchorElem, blockElem, setBlockElem);
156
157
  return (_jsxs(_Fragment, { children: [_jsx(InsertImageDialog, { open: imageOpen, title: "\uC774\uBBF8\uC9C0 \uC0BD\uC785\uD558\uAE30", onClose: () => setImageOpen(false), onChange: (props) => {
157
158
  editor.dispatchCommand(INSERT_IMAGE_COMMAND, props);
158
- }, shouldReset: true }), showFileUploadBlock && _jsx(UploadFileDialog, { open: fileOpen, onClose: () => setFileOpen(false), onChange: (props) => {
159
+ }, shouldReset: true }), _jsx(UploadFileDialog, { open: fileOpen, onClose: () => setFileOpen(false), onChange: (props) => {
159
160
  editor.dispatchCommand(UPLOAD_FILE_COMMAND, props);
160
161
  } }), _jsx(LexicalNodeMenuPlugin, { nodeKey: nodeKey, anchorClassName: cssToClassName `
161
162
  z-index: ${ZINDEX.DIALOG + 1};
@@ -209,6 +210,7 @@ export function ComponentAdderPlugin(props) {
209
210
  isSheetEnabled,
210
211
  isQuizEnabled,
211
212
  setFileOpen,
213
+ showFileUploadBlock,
212
214
  });
213
215
  setOptions(baseOptions);
214
216
  setPlusOrMenu("plus");
@@ -6,4 +6,5 @@ import { ComponentDrawerOption, ComponentPickerOption } from "../ComponentPicker
6
6
  export declare function useContextMenuOptions(props: {
7
7
  isSheetEnabled: boolean;
8
8
  isQuizEnabled: boolean;
9
+ showFileUploadBlock: boolean;
9
10
  }): (editor: LexicalEditor, node: LexicalNode, setImageOpen: (open: boolean) => void, setFileOpen: (open: boolean) => void) => (ComponentPickerOption | ComponentDrawerOption)[];
@@ -303,7 +303,7 @@ function getUploadFileContextMenuOptions(editor, node) {
303
303
  ];
304
304
  }
305
305
  export function useContextMenuOptions(props) {
306
- const { isSheetEnabled, isQuizEnabled } = props;
306
+ const { isSheetEnabled, isQuizEnabled, showFileUploadBlock } = props;
307
307
  const theme = useTheme();
308
308
  return (editor, node, setImageOpen, setFileOpen) => {
309
309
  if ($isProblemInputNode(node)) {
@@ -345,6 +345,7 @@ export function useContextMenuOptions(props) {
345
345
  isSheetEnabled,
346
346
  isQuizEnabled,
347
347
  setFileOpen,
348
+ showFileUploadBlock,
348
349
  }),
349
350
  new ComponentPickerOption("블록 삭제", {
350
351
  icon: _jsx(CloseFillIcon, {}),
@@ -37,6 +37,7 @@ export declare function getBaseOptions(props: {
37
37
  setFileOpen: (open: boolean) => void;
38
38
  isSheetEnabled: boolean;
39
39
  isQuizEnabled: boolean;
40
+ showFileUploadBlock: boolean;
40
41
  }): (ComponentPickerOption | ComponentDrawerOption)[];
41
42
  export declare function ComponentPickerMenuPlugin(props: {
42
43
  isSheetEnabled: boolean;
@@ -183,7 +183,7 @@ function getQuizContextOptions(editor, theme) {
183
183
  ];
184
184
  }
185
185
  export function getBaseOptions(props) {
186
- const { editor, theme, setImageOpen, setFileOpen, isSheetEnabled, isQuizEnabled, } = props;
186
+ const { editor, theme, setImageOpen, setFileOpen, isSheetEnabled, isQuizEnabled, showFileUploadBlock, } = props;
187
187
  const baseOptions = [
188
188
  new ComponentPickerOption("본문", {
189
189
  icon: _jsx(TextIcon, {}),
@@ -266,11 +266,6 @@ export function getBaseOptions(props) {
266
266
  keywords: ["image", "photo", "picture", "file"],
267
267
  onSelect: () => setImageOpen(true),
268
268
  }),
269
- new ComponentPickerOption("파일 게시", {
270
- icon: _jsx(File3LineIcon, {}),
271
- keywords: ["file", "upload"],
272
- onSelect: () => setFileOpen(true),
273
- }),
274
269
  ];
275
270
  // devMode 여부를 로컬스토리지에서 가져옵니다.
276
271
  const isDevMode = localStorage.getItem("devMode") === "true";
@@ -290,6 +285,14 @@ export function getBaseOptions(props) {
290
285
  onSelect: () => editor.dispatchCommand(INSERT_LAYOUT_COMMAND, "1fr 1fr"),
291
286
  }));
292
287
  }
288
+ // showFileUploadBlock 이면 파일블록을 추가합니다.
289
+ if (showFileUploadBlock) {
290
+ baseOptions.push(new ComponentPickerOption("파일 게시", {
291
+ icon: _jsx(File3LineIcon, {}),
292
+ keywords: ["file", "upload"],
293
+ onSelect: () => setFileOpen(true),
294
+ }));
295
+ }
293
296
  return baseOptions;
294
297
  }
295
298
  export function ComponentPickerMenuPlugin(props) {
@@ -310,6 +313,7 @@ export function ComponentPickerMenuPlugin(props) {
310
313
  isSheetEnabled,
311
314
  isQuizEnabled,
312
315
  setFileOpen,
316
+ showFileUploadBlock,
313
317
  });
314
318
  if (!queryString) {
315
319
  return baseOptions;
@@ -335,9 +339,9 @@ export function ComponentPickerMenuPlugin(props) {
335
339
  }, [editor]);
336
340
  return (_jsxs(_Fragment, { children: [_jsx(InsertImageDialog, { title: "\uC774\uBBF8\uC9C0 \uC0BD\uC785\uD558\uAE30", open: open, onChange: (props) => {
337
341
  editor.dispatchCommand(INSERT_IMAGE_COMMAND, props);
338
- }, onClose: () => setOpen(false), shouldReset: true }), showFileUploadBlock && (_jsx(UploadFileDialog, { open: fileOpen, onClose: () => setFileOpen(false), onChange: (props) => {
342
+ }, onClose: () => setOpen(false), shouldReset: true }), _jsx(UploadFileDialog, { open: fileOpen, onClose: () => setFileOpen(false), onChange: (props) => {
339
343
  editor.dispatchCommand(UPLOAD_FILE_COMMAND, props);
340
- } })), _jsx(LexicalTypeaheadMenuPlugin, { onQueryChange: setQueryString, onSelectOption: onSelectOption, triggerFn: checkForTriggerMatch, options: options, anchorClassName: cssToClassName `
344
+ } }), _jsx(LexicalTypeaheadMenuPlugin, { onQueryChange: setQueryString, onSelectOption: onSelectOption, triggerFn: checkForTriggerMatch, options: options, anchorClassName: cssToClassName `
341
345
  z-index: ${ZINDEX.DIALOG + 1};
342
346
  `, menuRenderFn: (anchorElementRef, { selectedIndex, selectOptionAndCleanUp, setHighlightedIndex }) => anchorElementRef.current && options.length
343
347
  ? ReactDOM.createPortal(_jsx(ComponentPickerMenuList, { options: options, selectedIndex: selectedIndex, selectOptionAndCleanUp: selectOptionAndCleanUp, setHighlightedIndex: setHighlightedIndex }), anchorElementRef.current)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@team-monolith/cds",
3
- "version": "1.84.6",
3
+ "version": "1.84.8",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "sideEffects": false,