@gravity-ui/querieskit 1.5.0 → 1.5.1
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/build/cjs/components/AttachmentList/AttachmentList.js +1 -0
- package/build/cjs/components/AttachmentList/AttachmentList.js.map +1 -1
- package/build/cjs/modules/Attachments/Attachments.css +13 -1
- package/build/cjs/modules/Attachments/Attachments.css.map +1 -1
- package/build/cjs/modules/Attachments/Attachments.js +4 -4
- package/build/cjs/modules/Attachments/Attachments.js.map +1 -1
- package/build/cjs/modules/Attachments/Attachments.stories.d.ts +1 -0
- package/build/cjs/modules/Attachments/Attachments.stories.js +92 -2
- package/build/cjs/modules/Attachments/Attachments.stories.js.map +1 -1
- package/build/esm/components/AttachmentList/AttachmentList.js +1 -0
- package/build/esm/components/AttachmentList/AttachmentList.js.map +1 -1
- package/build/esm/modules/Attachments/Attachments.css +13 -1
- package/build/esm/modules/Attachments/Attachments.css.map +1 -1
- package/build/esm/modules/Attachments/Attachments.js +5 -5
- package/build/esm/modules/Attachments/Attachments.js.map +1 -1
- package/build/esm/modules/Attachments/Attachments.scss +13 -1
- package/build/esm/modules/Attachments/Attachments.stories.d.ts +1 -0
- package/build/esm/modules/Attachments/Attachments.stories.js +91 -1
- package/build/esm/modules/Attachments/Attachments.stories.js.map +1 -1
- package/package.json +1 -1
|
@@ -58,6 +58,7 @@ var AttachmentList = exports.AttachmentList = function AttachmentList(_ref) {
|
|
|
58
58
|
className: className,
|
|
59
59
|
width: "100%",
|
|
60
60
|
height: "100%",
|
|
61
|
+
overflow: "auto",
|
|
61
62
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.List, (0, _objectSpread2.default)({
|
|
62
63
|
filterable: false,
|
|
63
64
|
virtualized: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_AttachmentItem","_isInteractiveTarget","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","AttachmentList","exports","_ref","attachments","onEdit","onDelete","onRevert","wasAddedIds","wasEditedIds","editingIds","renderEditForm","className","isDeleted","onItemClick","listProps","_objectWithoutProperties","_excluded","addedIdsSet","useMemo","Set","editedIdsSet","editingIdsSet","handleItemClick","item","index","fromKeyboard","event","id","isInteractiveTarget","target","_jsx","Flex","width","height","children","List","_objectSpread","filterable","virtualized","items","renderItem","attachment","AttachmentItem","wasAdded","wasEdited"],"sources":["AttachmentList.tsx"],"sourcesContent":["import React, {ReactNode, useMemo} from 'react';\nimport {Flex, List, ListProps} from '@gravity-ui/uikit';\nimport {AttachmentItem, AttachmentItemProps} from './internal/AttachmentItem/AttachmentItem';\nimport {isInteractiveTarget} from './helpers/isInteractiveTarget';\nimport './AttachmentList.scss';\n\nexport type AttachmentListProps<\n T extends AttachmentItemProps['attachment'] = AttachmentItemProps['attachment'],\n> = Omit<ListProps<T>, 'items' | 'selectedItemIndex' | 'virtualized'> & {\n attachments: AttachmentItemProps['attachment'][];\n className?: string;\n onDelete?: (attachment: AttachmentItemProps['attachment']) => void;\n onEdit?: (attachment: AttachmentItemProps['attachment']) => void;\n onRevert?: (attachment: AttachmentItemProps['attachment']) => void;\n\n renderEditForm?: (attachment: AttachmentItemProps['attachment']) => ReactNode;\n\n wasAddedIds?: string[];\n wasEditedIds?: string[];\n\n editingIds?: string[];\n\n isDeleted?: boolean;\n};\n\nexport const AttachmentList = ({\n attachments,\n onEdit,\n onDelete,\n onRevert,\n wasAddedIds,\n wasEditedIds,\n editingIds,\n renderEditForm,\n className,\n isDeleted,\n onItemClick,\n ...listProps\n}: AttachmentListProps) => {\n const addedIdsSet = useMemo(() => new Set(wasAddedIds), [wasAddedIds]);\n const editedIdsSet = useMemo(() => new Set(wasEditedIds), [wasEditedIds]);\n const editingIdsSet = useMemo(() => new Set(editingIds), [editingIds]);\n\n const handleItemClick: AttachmentListProps['onItemClick'] = (\n item,\n index,\n fromKeyboard,\n event,\n ) => {\n if (editingIdsSet.has(item.id)) return;\n if (isInteractiveTarget(event?.target)) return;\n onItemClick?.(item, index, fromKeyboard, event);\n };\n\n return (\n <Flex className={className} width=\"100%\" height=\"100%\">\n <List<AttachmentListProps['attachments'][number]>\n filterable={false}\n virtualized={false}\n items={attachments}\n onItemClick={handleItemClick}\n renderItem={(attachment) => {\n if (editingIdsSet.has(attachment.id)) {\n return renderEditForm?.(attachment);\n }\n\n return (\n <AttachmentItem\n attachment={attachment}\n wasAdded={addedIdsSet.has(attachment.id)}\n wasEdited={editedIdsSet.has(attachment.id)}\n onEdit={onEdit}\n onRevert={onRevert}\n onDelete={onDelete}\n isDeleted={isDeleted}\n />\n );\n }}\n {...listProps}\n />\n </Flex>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACAA,OAAA;AAA+B,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAkB,uBAAAnB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;;AAqBxB,IAAMoB,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAAE,IAAA,EAaA;EAAA,IAZvBC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IACdC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,SAAS,GAAAV,IAAA,CAATU,SAAS;IACTC,WAAW,GAAAX,IAAA,CAAXW,WAAW;IACRC,SAAS,OAAAC,iCAAA,EAAAb,IAAA,EAAAc,SAAA;EAEZ,IAAMC,WAAW,GAAG,IAAAC,cAAO,EAAC;IAAA,OAAM,IAAIC,GAAG,CAACZ,WAAW,CAAC;EAAA,GAAE,CAACA,WAAW,CAAC,CAAC;EACtE,IAAMa,YAAY,GAAG,IAAAF,cAAO,EAAC;IAAA,OAAM,IAAIC,GAAG,CAACX,YAAY,CAAC;EAAA,GAAE,CAACA,YAAY,CAAC,CAAC;EACzE,IAAMa,aAAa,GAAG,IAAAH,cAAO,EAAC;IAAA,OAAM,IAAIC,GAAG,CAACV,UAAU,CAAC;EAAA,GAAE,CAACA,UAAU,CAAC,CAAC;EAEtE,IAAMa,eAAmD,GAAG,SAAtDA,eAAmDA,CACrDC,IAAI,EACJC,KAAK,EACLC,YAAY,EACZC,KAAK,EACJ;IACD,IAAIL,aAAa,CAAC9B,GAAG,CAACgC,IAAI,CAACI,EAAE,CAAC,EAAE;IAChC,IAAI,IAAAC,wCAAmB,EAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,MAAM,CAAC,EAAE;IACxChB,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAGU,IAAI,EAAEC,KAAK,EAAEC,YAAY,EAAEC,KAAK,CAAC;EACnD,CAAC;EAED,oBACI,IAAAI,eAAA,EAACC,WAAI;IAACpB,SAAS,EAAEA,SAAU;IAACqB,KAAK,EAAC,MAAM;IAACC,MAAM,EAAC,MAAM;IAAAC,QAAA,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_AttachmentItem","_isInteractiveTarget","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","AttachmentList","exports","_ref","attachments","onEdit","onDelete","onRevert","wasAddedIds","wasEditedIds","editingIds","renderEditForm","className","isDeleted","onItemClick","listProps","_objectWithoutProperties","_excluded","addedIdsSet","useMemo","Set","editedIdsSet","editingIdsSet","handleItemClick","item","index","fromKeyboard","event","id","isInteractiveTarget","target","_jsx","Flex","width","height","overflow","children","List","_objectSpread","filterable","virtualized","items","renderItem","attachment","AttachmentItem","wasAdded","wasEdited"],"sources":["AttachmentList.tsx"],"sourcesContent":["import React, {ReactNode, useMemo} from 'react';\nimport {Flex, List, ListProps} from '@gravity-ui/uikit';\nimport {AttachmentItem, AttachmentItemProps} from './internal/AttachmentItem/AttachmentItem';\nimport {isInteractiveTarget} from './helpers/isInteractiveTarget';\nimport './AttachmentList.scss';\n\nexport type AttachmentListProps<\n T extends AttachmentItemProps['attachment'] = AttachmentItemProps['attachment'],\n> = Omit<ListProps<T>, 'items' | 'selectedItemIndex' | 'virtualized'> & {\n attachments: AttachmentItemProps['attachment'][];\n className?: string;\n onDelete?: (attachment: AttachmentItemProps['attachment']) => void;\n onEdit?: (attachment: AttachmentItemProps['attachment']) => void;\n onRevert?: (attachment: AttachmentItemProps['attachment']) => void;\n\n renderEditForm?: (attachment: AttachmentItemProps['attachment']) => ReactNode;\n\n wasAddedIds?: string[];\n wasEditedIds?: string[];\n\n editingIds?: string[];\n\n isDeleted?: boolean;\n};\n\nexport const AttachmentList = ({\n attachments,\n onEdit,\n onDelete,\n onRevert,\n wasAddedIds,\n wasEditedIds,\n editingIds,\n renderEditForm,\n className,\n isDeleted,\n onItemClick,\n ...listProps\n}: AttachmentListProps) => {\n const addedIdsSet = useMemo(() => new Set(wasAddedIds), [wasAddedIds]);\n const editedIdsSet = useMemo(() => new Set(wasEditedIds), [wasEditedIds]);\n const editingIdsSet = useMemo(() => new Set(editingIds), [editingIds]);\n\n const handleItemClick: AttachmentListProps['onItemClick'] = (\n item,\n index,\n fromKeyboard,\n event,\n ) => {\n if (editingIdsSet.has(item.id)) return;\n if (isInteractiveTarget(event?.target)) return;\n onItemClick?.(item, index, fromKeyboard, event);\n };\n\n return (\n <Flex className={className} width=\"100%\" height=\"100%\" overflow=\"auto\">\n <List<AttachmentListProps['attachments'][number]>\n filterable={false}\n virtualized={false}\n items={attachments}\n onItemClick={handleItemClick}\n renderItem={(attachment) => {\n if (editingIdsSet.has(attachment.id)) {\n return renderEditForm?.(attachment);\n }\n\n return (\n <AttachmentItem\n attachment={attachment}\n wasAdded={addedIdsSet.has(attachment.id)}\n wasEdited={editedIdsSet.has(attachment.id)}\n onEdit={onEdit}\n onRevert={onRevert}\n onDelete={onDelete}\n isDeleted={isDeleted}\n />\n );\n }}\n {...listProps}\n />\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
.qp-attachments {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
}
|
|
1
5
|
.qp-attachments__panel {
|
|
2
|
-
flex: 1;
|
|
6
|
+
flex: 1 1 0;
|
|
7
|
+
min-height: 0;
|
|
8
|
+
max-height: 100%;
|
|
9
|
+
overflow: hidden;
|
|
3
10
|
}
|
|
4
11
|
.qp-attachments__tab .g-tab__title {
|
|
5
12
|
display: flex;
|
|
@@ -8,5 +15,10 @@
|
|
|
8
15
|
.qp-attachments__tab-list {
|
|
9
16
|
padding-left: var(--g-spacing-4);
|
|
10
17
|
padding-right: var(--g-spacing-4);
|
|
18
|
+
flex-shrink: 0;
|
|
19
|
+
}
|
|
20
|
+
.qp-attachments__list {
|
|
21
|
+
min-height: 0;
|
|
22
|
+
overflow-y: auto;
|
|
11
23
|
}
|
|
12
24
|
/*# sourceMappingURL=Attachments.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AACI;EACI,
|
|
1
|
+
{"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AAAA;EACI,aAAA;EACA,sBAAA;AACJ;AACI;EACI,WAAA;EACA,aAAA;EACA,gBAAA;EACA,gBAAA;AACR;AAEI;EACI,aAAA;EACA,uBAAA;AAAR;AAGI;EACI,gCAAA;EACA,iCAAA;EACA,cAAA;AADR;AAII;EACI,aAAA;EACA,gBAAA;AAFR","file":"Attachments.css","sourcesContent":[".qp-attachments {\n display: flex;\n flex-direction: column;\n \n &__panel {\n flex: 1 1 0;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n }\n\n &__tab .g-tab__title {\n display: flex;\n gap: var(--g-spacing-2)\n }\n\n &__tab-list {\n padding-left: var(--g-spacing-4);\n padding-right: var(--g-spacing-4);\n flex-shrink: 0;\n }\n\n &__list {\n min-height: 0;\n overflow-y: auto;\n }\n}"],"sourceRoot":""}
|
|
@@ -253,11 +253,10 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
|
|
|
253
253
|
deletedAttachments: patchDeletedAttachList
|
|
254
254
|
});
|
|
255
255
|
};
|
|
256
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.
|
|
256
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Box, {
|
|
257
257
|
className: block(),
|
|
258
|
-
direction: "column",
|
|
259
|
-
width: "100%",
|
|
260
258
|
height: "100%",
|
|
259
|
+
overflow: "hidden",
|
|
261
260
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.TabProvider, {
|
|
262
261
|
value: currentTab,
|
|
263
262
|
onUpdate: function onUpdate(tab) {
|
|
@@ -293,11 +292,12 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
|
|
|
293
292
|
value: "Current",
|
|
294
293
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Flex, {
|
|
295
294
|
spacing: {
|
|
296
|
-
|
|
295
|
+
py: 3
|
|
297
296
|
},
|
|
298
297
|
direction: "column",
|
|
299
298
|
width: "100%",
|
|
300
299
|
height: "100%",
|
|
300
|
+
gap: 3,
|
|
301
301
|
children: [attachList.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.AttachmentList, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, attachmentListProps), {}, {
|
|
302
302
|
attachments: attachList,
|
|
303
303
|
wasAddedIds: wasAddedIds,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_components","_createUuid","_isObjectEqual","_icons","_bemCnLite","_interopRequireDefault","_i18n","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","Attachments","exports","_ref","tokens","placeholderProps","attachmentListProps","onChange","onItemClick","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_useState","useState","_useState2","_slicedToArray","currentTab","setCurrentTab","_useState3","_useState4","innerAttachList","setInnerAttachList","_useState5","_useState6","innerDeletedAttachList","setInnerDeletedAttachList","_useState7","_useState8","editingIds","setEditingIds","_useState9","_useState0","wasAddedIds","setWasAddedIds","_useState1","_useState10","wasEdited","setWasEditedIds","attachList","deletedAttachList","attachCount","useMemo","filter","a","isNew","length","defaultAttachList","useRef","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","isObjectEqual","concat","_toConsumableArray","handleAddEmptyFile","createUuid","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","_jsx","Flex","className","direction","width","height","children","_jsxs","TabProvider","value","onUpdate","tab","TabList","Tab","Text","variant","color","TabPanel","spacing","pt","AttachmentList","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","EditAttachmentItem","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","AttachmentListPlaceholder","onAddFile","onAddLink","Boolean","px","gap","Button","onClick","Icon","data","Plus","i18n","view","isDeleted","onRevert"],"sources":["Attachments.tsx"],"sourcesContent":["import React, {useMemo, useRef, useState} from 'react';\nimport {Button, Flex, Icon, Tab, TabList, TabPanel, TabProvider, Text} from '@gravity-ui/uikit';\nimport {AttachmentList, AttachmentListPlaceholder, EditAttachmentItem} from '../../components';\nimport {createUuid} from '../../helpers/createUuid';\nimport {isObjectEqual} from '../../helpers/isObjectEqual';\nimport {Plus} from '@gravity-ui/icons';\nimport type {\n AttachmentItemProps,\n AttachmentListPlaceholderProps,\n AttachmentListProps,\n EditLinkValues,\n} from '../../components';\nimport cn from 'bem-cn-lite';\n\nimport i18n from './i18n';\n\nimport './Attachments.scss';\n\ntype TabVariants = 'Current' | 'Deleted';\n\nexport type AttachItem = AttachmentItemProps['attachment'] & {token?: string; isNew?: boolean};\n\nexport type AttachmentsProps = {\n tokens?: {value: string; title: string}[];\n placeholderProps?: Omit<AttachmentListPlaceholderProps, 'onAddFile' | 'onAddLink'>;\n attachmentListProps?: Pick<AttachmentListProps, 'className'>;\n attachments?: AttachItem[];\n deletedAttachments?: AttachItem[];\n onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];\n onChange?: (payload: {attachments: AttachItem[]; deletedAttachments: AttachItem[]}) => void;\n};\n\nconst block = cn('qp-attachments');\n\nexport const Attachments = ({\n tokens,\n placeholderProps,\n attachmentListProps,\n onChange,\n onItemClick,\n attachments: customerAttachments,\n deletedAttachments: customerDeletedAttachments,\n}: AttachmentsProps) => {\n const [currentTab, setCurrentTab] = useState<'Current' | 'Deleted'>('Current');\n\n const [innerAttachList, setInnerAttachList] = useState<AttachItem[]>(customerAttachments ?? []);\n const [innerDeletedAttachList, setInnerDeletedAttachList] = useState<AttachItem[]>(\n customerDeletedAttachments ?? [],\n );\n\n const [editingIds, setEditingIds] = useState<string[]>([]);\n const [wasAddedIds, setWasAddedIds] = useState<string[]>([]);\n const [wasEdited, setWasEditedIds] = useState<string[]>([]);\n\n const attachList = customerAttachments ?? innerAttachList;\n const deletedAttachList = customerDeletedAttachments ?? innerDeletedAttachList;\n\n const attachCount = useMemo(() => attachList.filter((a) => !a.isNew).length, [attachList]);\n\n const defaultAttachList = useRef(attachList);\n\n const getDefaultValuesForLink = (linkId: string) => {\n const currentLink = attachList.find((a) => a.id === linkId);\n return {\n name: currentLink?.name ?? '',\n link: currentLink?.link ?? '',\n token: currentLink?.token ?? '',\n };\n };\n\n const runAfterAttachAdded = (attachId: string, newAttach: AttachItem) => {\n const editedAttach = defaultAttachList.current.find((a) => a.id === attachId);\n\n if (!editedAttach) return;\n\n if (isObjectEqual(editedAttach, newAttach)) {\n setWasEditedIds(wasEdited.filter((id) => id !== attachId));\n return;\n }\n\n setWasEditedIds([...wasEdited, attachId]);\n };\n\n const handleAddEmptyFile = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAddEmptyLink = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', token: '', link: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAcceptFile = (fileId: string, fileName: string) => {\n const patchedFile = attachList.find((a) => a.id === fileId);\n if (!patchedFile) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === fileId) return {id: fileId, name: fileName};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(fileId, {id: fileId, name: fileName});\n };\n\n const handleAcceptLink = (linkId: string, link: EditLinkValues) => {\n const patchedLink = attachList.find((a) => a.id === linkId);\n if (!patchedLink) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== linkId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === linkId) return {id: linkId, ...link};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(linkId, {id: linkId, ...link});\n };\n\n const handleCancelEdit = (fileId: string) => {\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.filter((a) => !a.isNew);\n\n const wasItNewAttach = attachList.some((a) => a.isNew);\n if (wasItNewAttach) {\n setWasAddedIds(wasAddedIds.filter((id) => id !== fileId));\n }\n\n setInnerAttachList(patchAttachList);\n setEditingIds(patchEditingIds);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleEdit = (editAttachId: string) => {\n const patchEditingIds = [...editingIds, editAttachId];\n\n setEditingIds(patchEditingIds);\n };\n\n const handleDelete = (attachId: string) => {\n const deletedAttachmen = attachList.find((a) => a.id === attachId);\n\n if (!deletedAttachmen) return;\n\n const patchAttachList = attachList.filter((a) => a.id !== attachId);\n const patchDeletedAttachList = [...deletedAttachList, deletedAttachmen];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleDeleteAll = () => {\n const patchAttachList: never[] = [];\n const patchDeletedAttachList = [\n ...deletedAttachList,\n ...attachList.filter((a) => !a.isNew),\n ];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleRevertDelete = (attachId: string) => {\n const revertAttach = deletedAttachList.find((a) => a.id === attachId);\n\n if (!revertAttach) return;\n\n const patchAttachList = [...attachList, revertAttach];\n const patchDeletedAttachList = deletedAttachList.filter((a) => a.id !== attachId);\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n return (\n <Flex className={block()} direction=\"column\" width=\"100%\" height=\"100%\">\n <TabProvider value={currentTab} onUpdate={(tab) => setCurrentTab(tab as TabVariants)}>\n <TabList className={block('tab-list')}>\n <Tab className={block('tab')} value=\"Current\">\n <Text variant=\"body-1\">Current</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {attachCount}\n </Text>\n </Tab>\n <Tab className={block('tab')} value=\"Deleted\">\n <Text variant=\"body-1\">Deleted</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {deletedAttachList.length}\n </Text>\n </Tab>\n </TabList>\n\n <TabPanel className={block('panel')} value=\"Current\">\n <Flex spacing={{pt: 3}} direction=\"column\" width=\"100%\" height=\"100%\">\n {attachList.length ? (\n <AttachmentList\n {...attachmentListProps}\n attachments={attachList}\n wasAddedIds={wasAddedIds}\n wasEditedIds={wasEdited}\n editingIds={editingIds}\n onEdit={(attach) => handleEdit(attach.id)}\n onDelete={(attach) => handleDelete(attach.id)}\n onItemClick={onItemClick}\n renderEditForm={(attach) => {\n const isLink = typeof attach.link === 'string';\n\n if (isLink) {\n const defaultLinkValues = getDefaultValuesForLink(\n attach.id,\n );\n\n return (\n <EditAttachmentItem\n type=\"link\"\n onAccept={(link) =>\n handleAcceptLink(attach.id, link)\n }\n defaultValues={defaultLinkValues}\n tokens={tokens}\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n type=\"file\"\n defaultFileName={attach.name}\n onAccept={(pathName) =>\n handleAcceptFile(attach.id, pathName)\n }\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }}\n />\n ) : (\n <AttachmentListPlaceholder\n onAddFile={handleAddEmptyFile}\n onAddLink={handleAddEmptyLink}\n {...placeholderProps}\n />\n )}\n {Boolean(attachList.length) && (\n <Flex spacing={{px: 4}} gap={2}>\n <Button onClick={handleAddEmptyFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button view=\"outlined\" onClick={handleAddEmptyLink}>\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n\n <Button view=\"flat\" onClick={handleDeleteAll}>\n {i18n('action_remove-all')}\n </Button>\n </Flex>\n )}\n </Flex>\n </TabPanel>\n\n <TabPanel className={block('panel')} value=\"Deleted\">\n <Flex spacing={{pt: 3}} width=\"100%\" height=\"100%\">\n <AttachmentList\n {...attachmentListProps}\n isDeleted\n attachments={deletedAttachList}\n onRevert={(attach) => handleRevertDelete(attach.id)}\n onItemClick={onItemClick}\n />\n </Flex>\n </TabPanel>\n </TabProvider>\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_components","_createUuid","_isObjectEqual","_icons","_bemCnLite","_interopRequireDefault","_i18n","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","Attachments","exports","_ref","tokens","placeholderProps","attachmentListProps","onChange","onItemClick","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_useState","useState","_useState2","_slicedToArray","currentTab","setCurrentTab","_useState3","_useState4","innerAttachList","setInnerAttachList","_useState5","_useState6","innerDeletedAttachList","setInnerDeletedAttachList","_useState7","_useState8","editingIds","setEditingIds","_useState9","_useState0","wasAddedIds","setWasAddedIds","_useState1","_useState10","wasEdited","setWasEditedIds","attachList","deletedAttachList","attachCount","useMemo","filter","a","isNew","length","defaultAttachList","useRef","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","isObjectEqual","concat","_toConsumableArray","handleAddEmptyFile","createUuid","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","_jsx","Box","className","height","overflow","children","_jsxs","TabProvider","value","onUpdate","tab","TabList","Tab","Text","variant","color","TabPanel","Flex","spacing","py","direction","width","gap","AttachmentList","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","EditAttachmentItem","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","AttachmentListPlaceholder","onAddFile","onAddLink","Boolean","px","Button","onClick","Icon","data","Plus","i18n","view","pt","isDeleted","onRevert"],"sources":["Attachments.tsx"],"sourcesContent":["import React, {useMemo, useRef, useState} from 'react';\nimport {\n Box,\n Button,\n Flex,\n Icon,\n Tab,\n TabList,\n TabPanel,\n TabProvider,\n Text,\n} from '@gravity-ui/uikit';\nimport {AttachmentList, AttachmentListPlaceholder, EditAttachmentItem} from '../../components';\nimport {createUuid} from '../../helpers/createUuid';\nimport {isObjectEqual} from '../../helpers/isObjectEqual';\nimport {Plus} from '@gravity-ui/icons';\nimport type {\n AttachmentItemProps,\n AttachmentListPlaceholderProps,\n AttachmentListProps,\n EditLinkValues,\n} from '../../components';\nimport cn from 'bem-cn-lite';\n\nimport i18n from './i18n';\n\nimport './Attachments.scss';\n\ntype TabVariants = 'Current' | 'Deleted';\n\nexport type AttachItem = AttachmentItemProps['attachment'] & {token?: string; isNew?: boolean};\n\nexport type AttachmentsProps = {\n tokens?: {value: string; title: string}[];\n placeholderProps?: Omit<AttachmentListPlaceholderProps, 'onAddFile' | 'onAddLink'>;\n attachmentListProps?: Pick<AttachmentListProps, 'className'>;\n attachments?: AttachItem[];\n deletedAttachments?: AttachItem[];\n onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];\n onChange?: (payload: {attachments: AttachItem[]; deletedAttachments: AttachItem[]}) => void;\n};\n\nconst block = cn('qp-attachments');\n\nexport const Attachments = ({\n tokens,\n placeholderProps,\n attachmentListProps,\n onChange,\n onItemClick,\n attachments: customerAttachments,\n deletedAttachments: customerDeletedAttachments,\n}: AttachmentsProps) => {\n const [currentTab, setCurrentTab] = useState<'Current' | 'Deleted'>('Current');\n\n const [innerAttachList, setInnerAttachList] = useState<AttachItem[]>(customerAttachments ?? []);\n const [innerDeletedAttachList, setInnerDeletedAttachList] = useState<AttachItem[]>(\n customerDeletedAttachments ?? [],\n );\n\n const [editingIds, setEditingIds] = useState<string[]>([]);\n const [wasAddedIds, setWasAddedIds] = useState<string[]>([]);\n const [wasEdited, setWasEditedIds] = useState<string[]>([]);\n\n const attachList = customerAttachments ?? innerAttachList;\n const deletedAttachList = customerDeletedAttachments ?? innerDeletedAttachList;\n\n const attachCount = useMemo(() => attachList.filter((a) => !a.isNew).length, [attachList]);\n\n const defaultAttachList = useRef(attachList);\n\n const getDefaultValuesForLink = (linkId: string) => {\n const currentLink = attachList.find((a) => a.id === linkId);\n return {\n name: currentLink?.name ?? '',\n link: currentLink?.link ?? '',\n token: currentLink?.token ?? '',\n };\n };\n\n const runAfterAttachAdded = (attachId: string, newAttach: AttachItem) => {\n const editedAttach = defaultAttachList.current.find((a) => a.id === attachId);\n\n if (!editedAttach) return;\n\n if (isObjectEqual(editedAttach, newAttach)) {\n setWasEditedIds(wasEdited.filter((id) => id !== attachId));\n return;\n }\n\n setWasEditedIds([...wasEdited, attachId]);\n };\n\n const handleAddEmptyFile = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAddEmptyLink = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', token: '', link: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAcceptFile = (fileId: string, fileName: string) => {\n const patchedFile = attachList.find((a) => a.id === fileId);\n if (!patchedFile) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === fileId) return {id: fileId, name: fileName};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(fileId, {id: fileId, name: fileName});\n };\n\n const handleAcceptLink = (linkId: string, link: EditLinkValues) => {\n const patchedLink = attachList.find((a) => a.id === linkId);\n if (!patchedLink) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== linkId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === linkId) return {id: linkId, ...link};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(linkId, {id: linkId, ...link});\n };\n\n const handleCancelEdit = (fileId: string) => {\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.filter((a) => !a.isNew);\n\n const wasItNewAttach = attachList.some((a) => a.isNew);\n if (wasItNewAttach) {\n setWasAddedIds(wasAddedIds.filter((id) => id !== fileId));\n }\n\n setInnerAttachList(patchAttachList);\n setEditingIds(patchEditingIds);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleEdit = (editAttachId: string) => {\n const patchEditingIds = [...editingIds, editAttachId];\n\n setEditingIds(patchEditingIds);\n };\n\n const handleDelete = (attachId: string) => {\n const deletedAttachmen = attachList.find((a) => a.id === attachId);\n\n if (!deletedAttachmen) return;\n\n const patchAttachList = attachList.filter((a) => a.id !== attachId);\n const patchDeletedAttachList = [...deletedAttachList, deletedAttachmen];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleDeleteAll = () => {\n const patchAttachList: never[] = [];\n const patchDeletedAttachList = [\n ...deletedAttachList,\n ...attachList.filter((a) => !a.isNew),\n ];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleRevertDelete = (attachId: string) => {\n const revertAttach = deletedAttachList.find((a) => a.id === attachId);\n\n if (!revertAttach) return;\n\n const patchAttachList = [...attachList, revertAttach];\n const patchDeletedAttachList = deletedAttachList.filter((a) => a.id !== attachId);\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n return (\n <Box className={block()} height=\"100%\" overflow=\"hidden\">\n <TabProvider value={currentTab} onUpdate={(tab) => setCurrentTab(tab as TabVariants)}>\n <TabList className={block('tab-list')}>\n <Tab className={block('tab')} value=\"Current\">\n <Text variant=\"body-1\">Current</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {attachCount}\n </Text>\n </Tab>\n <Tab className={block('tab')} value=\"Deleted\">\n <Text variant=\"body-1\">Deleted</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {deletedAttachList.length}\n </Text>\n </Tab>\n </TabList>\n\n <TabPanel className={block('panel')} value=\"Current\">\n <Flex spacing={{py: 3}} direction=\"column\" width=\"100%\" height=\"100%\" gap={3}>\n {attachList.length ? (\n <AttachmentList\n {...attachmentListProps}\n attachments={attachList}\n wasAddedIds={wasAddedIds}\n wasEditedIds={wasEdited}\n editingIds={editingIds}\n onEdit={(attach) => handleEdit(attach.id)}\n onDelete={(attach) => handleDelete(attach.id)}\n onItemClick={onItemClick}\n renderEditForm={(attach) => {\n const isLink = typeof attach.link === 'string';\n\n if (isLink) {\n const defaultLinkValues = getDefaultValuesForLink(\n attach.id,\n );\n\n return (\n <EditAttachmentItem\n type=\"link\"\n onAccept={(link) =>\n handleAcceptLink(attach.id, link)\n }\n defaultValues={defaultLinkValues}\n tokens={tokens}\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n type=\"file\"\n defaultFileName={attach.name}\n onAccept={(pathName) =>\n handleAcceptFile(attach.id, pathName)\n }\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }}\n />\n ) : (\n <AttachmentListPlaceholder\n onAddFile={handleAddEmptyFile}\n onAddLink={handleAddEmptyLink}\n {...placeholderProps}\n />\n )}\n {Boolean(attachList.length) && (\n <Flex spacing={{px: 4}} gap={2}>\n <Button onClick={handleAddEmptyFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button view=\"outlined\" onClick={handleAddEmptyLink}>\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n\n <Button view=\"flat\" onClick={handleDeleteAll}>\n {i18n('action_remove-all')}\n </Button>\n </Flex>\n )}\n </Flex>\n </TabPanel>\n\n <TabPanel className={block('panel')} value=\"Deleted\">\n <Flex spacing={{pt: 3}} width=\"100%\" height=\"100%\">\n <AttachmentList\n {...attachmentListProps}\n isDeleted\n attachments={deletedAttachList}\n onRevert={(attach) => handleRevertDelete(attach.id)}\n onItemClick={onItemClick}\n />\n </Flex>\n </TabPanel>\n </TabProvider>\n </Box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,5 +38,6 @@ export declare const Default: Story;
|
|
|
38
38
|
export declare const WithAttachments: Story;
|
|
39
39
|
/** Current and deleted collections. Open the Deleted tab to restore an attachment. */
|
|
40
40
|
export declare const WithDeletedAttachments: Story;
|
|
41
|
+
export declare const WithLongList: Story;
|
|
41
42
|
/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */
|
|
42
43
|
export declare const Controlled: Story;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = exports.WithDeletedAttachments = exports.WithAttachments = exports.Default = exports.Controlled = void 0;
|
|
6
|
+
exports.default = exports.WithLongList = exports.WithDeletedAttachments = exports.WithAttachments = exports.Default = exports.Controlled = void 0;
|
|
7
7
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -24,6 +24,87 @@ var attachments = [{
|
|
|
24
24
|
link: 'https://example.com/docs/query',
|
|
25
25
|
token: 'documentation-token'
|
|
26
26
|
}];
|
|
27
|
+
var attachmentsLongList = [{
|
|
28
|
+
id: 'readme',
|
|
29
|
+
name: 'README.md'
|
|
30
|
+
}, {
|
|
31
|
+
id: 'query',
|
|
32
|
+
name: 'daily-report.sql'
|
|
33
|
+
}, {
|
|
34
|
+
id: 'schema',
|
|
35
|
+
name: 'schema.json'
|
|
36
|
+
}, {
|
|
37
|
+
id: 'changelog',
|
|
38
|
+
name: 'CHANGELOG.md'
|
|
39
|
+
}, {
|
|
40
|
+
id: 'weekly-report',
|
|
41
|
+
name: 'weekly-report.sql'
|
|
42
|
+
}, {
|
|
43
|
+
id: 'monthly-report',
|
|
44
|
+
name: 'monthly-report.sql'
|
|
45
|
+
}, {
|
|
46
|
+
id: 'data-export',
|
|
47
|
+
name: 'data-export.csv'
|
|
48
|
+
}, {
|
|
49
|
+
id: 'users-dump',
|
|
50
|
+
name: 'users-dump.csv'
|
|
51
|
+
}, {
|
|
52
|
+
id: 'metrics',
|
|
53
|
+
name: 'metrics.tsv'
|
|
54
|
+
}, {
|
|
55
|
+
id: 'notes',
|
|
56
|
+
name: 'notes.txt'
|
|
57
|
+
}, {
|
|
58
|
+
id: 'documentation',
|
|
59
|
+
name: 'Query documentation',
|
|
60
|
+
link: 'https://example.com/docs/query',
|
|
61
|
+
token: 'documentation-token'
|
|
62
|
+
}, {
|
|
63
|
+
id: 'dashboard',
|
|
64
|
+
name: 'Main dashboard',
|
|
65
|
+
link: 'https://example.com/dashboards/main',
|
|
66
|
+
token: 'dashboard-token'
|
|
67
|
+
}, {
|
|
68
|
+
id: 'runbook',
|
|
69
|
+
name: 'Incident runbook',
|
|
70
|
+
link: 'https://example.com/docs/runbook',
|
|
71
|
+
token: 'documentation-token'
|
|
72
|
+
}, {
|
|
73
|
+
id: 'api-reference',
|
|
74
|
+
name: 'API reference',
|
|
75
|
+
link: 'https://example.com/docs/api',
|
|
76
|
+
token: 'documentation-token'
|
|
77
|
+
}, {
|
|
78
|
+
id: 'grafana',
|
|
79
|
+
name: 'Grafana board',
|
|
80
|
+
link: 'https://example.com/grafana/board',
|
|
81
|
+
token: 'dashboard-token'
|
|
82
|
+
}, {
|
|
83
|
+
id: 'kibana',
|
|
84
|
+
name: 'Kibana logs',
|
|
85
|
+
link: 'https://example.com/kibana/logs',
|
|
86
|
+
token: 'dashboard-token'
|
|
87
|
+
}, {
|
|
88
|
+
id: 'wiki',
|
|
89
|
+
name: 'Team wiki',
|
|
90
|
+
link: 'https://example.com/wiki/team',
|
|
91
|
+
token: 'documentation-token'
|
|
92
|
+
}, {
|
|
93
|
+
id: 'design-doc',
|
|
94
|
+
name: 'Design document',
|
|
95
|
+
link: 'https://example.com/docs/design',
|
|
96
|
+
token: 'documentation-token'
|
|
97
|
+
}, {
|
|
98
|
+
id: 'roadmap',
|
|
99
|
+
name: 'Product roadmap',
|
|
100
|
+
link: 'https://example.com/roadmap',
|
|
101
|
+
token: 'documentation-token'
|
|
102
|
+
}, {
|
|
103
|
+
id: 'analytics',
|
|
104
|
+
name: 'Analytics dashboard',
|
|
105
|
+
link: 'https://example.com/dashboards/analytics',
|
|
106
|
+
token: 'dashboard-token'
|
|
107
|
+
}];
|
|
27
108
|
var deletedAttachments = [{
|
|
28
109
|
id: 'archive',
|
|
29
110
|
name: 'archive.csv'
|
|
@@ -51,7 +132,8 @@ var meta = {
|
|
|
51
132
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
52
133
|
style: {
|
|
53
134
|
height: 500,
|
|
54
|
-
width: 322
|
|
135
|
+
width: 322,
|
|
136
|
+
overflow: 'hidden'
|
|
55
137
|
},
|
|
56
138
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Story, {})
|
|
57
139
|
});
|
|
@@ -79,6 +161,7 @@ var Default = exports.Default = {
|
|
|
79
161
|
var WithAttachments = exports.WithAttachments = {
|
|
80
162
|
args: {
|
|
81
163
|
attachments: attachments,
|
|
164
|
+
deletedAttachments: [],
|
|
82
165
|
onItemClick: console.info
|
|
83
166
|
}
|
|
84
167
|
};
|
|
@@ -91,6 +174,13 @@ var WithDeletedAttachments = exports.WithDeletedAttachments = {
|
|
|
91
174
|
onItemClick: console.info
|
|
92
175
|
}
|
|
93
176
|
};
|
|
177
|
+
var WithLongList = exports.WithLongList = {
|
|
178
|
+
args: {
|
|
179
|
+
attachments: attachmentsLongList,
|
|
180
|
+
deletedAttachments: [],
|
|
181
|
+
onItemClick: console.info
|
|
182
|
+
}
|
|
183
|
+
};
|
|
94
184
|
var ControlledAttachments = function ControlledAttachments(props) {
|
|
95
185
|
var _props$attachments, _props$deletedAttachm;
|
|
96
186
|
var _useState = (0, _react.useState)((_props$attachments = props.attachments) !== null && _props$attachments !== void 0 ? _props$attachments : []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_test","_Attachments","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","attachments","id","name","link","token","deletedAttachments","tokens","value","title","meta","component","Attachments","tags","parameters","layout","decorators","Story","_jsx","style","height","width","children","args","onChange","fn","_default","exports","Default","placeholderProps","description","linkForDoc","linkText","onItemClick","console","info","WithAttachments","WithDeletedAttachments","ControlledAttachments","props","_props$attachments","_props$deletedAttachm","_useState","useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","currentDeletedAttachments","setCurrentDeletedAttachments","_objectSpread","payload","_props$onChange","Controlled","render"],"sources":["Attachments.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {fn} from 'storybook/test';\nimport {Attachments} from './Attachments';\n\ntype AttachmentsProps = React.ComponentProps<typeof Attachments>;\ntype Attachment = NonNullable<AttachmentsProps['attachments']>[number];\n\nconst attachments: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n];\n\nconst deletedAttachments: Attachment[] = [\n {id: 'archive', name: 'archive.csv'},\n {\n id: 'old-dashboard',\n name: 'Old dashboard',\n link: 'https://example.com/dashboards/old',\n token: 'dashboard-token',\n },\n];\n\nconst tokens: NonNullable<AttachmentsProps['tokens']> = [\n {value: 'documentation-token', title: 'Documentation token'},\n {value: 'dashboard-token', title: 'Dashboard token'},\n];\n\nconst meta = {\n title: 'Modules/Attachments',\n component: Attachments,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{height: 500, width: 322}}>\n <Story />\n </div>\n ),\n ],\n args: {\n tokens,\n onChange: fn(),\n },\n} satisfies Meta<typeof Attachments>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Empty state with content configured through `placeholderProps`. */\nexport const Default: Story = {\n args: {\n placeholderProps: {\n title: 'No attachments',\n description: 'Add files or links that should be available to the query.',\n linkForDoc: '#attachments-help',\n linkText: 'About attachments',\n },\n onItemClick: console.info,\n },\n};\n\n/** Initial files and links supplied through the uncontrolled `attachments` API. */\nexport const WithAttachments: Story = {\n args: {\n attachments,\n onItemClick: console.info,\n },\n};\n\n/** Current and deleted collections. Open the Deleted tab to restore an attachment. */\nexport const WithDeletedAttachments: Story = {\n args: {\n attachments,\n deletedAttachments,\n onItemClick: console.info,\n },\n};\n\nconst ControlledAttachments = (props: AttachmentsProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments ?? []);\n const [currentDeletedAttachments, setCurrentDeletedAttachments] = useState(\n props.deletedAttachments ?? [],\n );\n\n return (\n <Attachments\n {...props}\n attachments={currentAttachments}\n deletedAttachments={currentDeletedAttachments}\n onItemClick={console.info}\n onChange={(payload) => {\n setCurrentAttachments(payload.attachments);\n setCurrentDeletedAttachments(payload.deletedAttachments);\n props.onChange?.(payload);\n }}\n />\n );\n};\n\n/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */\nexport const Controlled: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n render: (args) => <ControlledAttachments {...args} />,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_test","_Attachments","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","attachments","id","name","link","token","attachmentsLongList","deletedAttachments","tokens","value","title","meta","component","Attachments","tags","parameters","layout","decorators","Story","_jsx","style","height","width","overflow","children","args","onChange","fn","_default","exports","Default","placeholderProps","description","linkForDoc","linkText","onItemClick","console","info","WithAttachments","WithDeletedAttachments","WithLongList","ControlledAttachments","props","_props$attachments","_props$deletedAttachm","_useState","useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","currentDeletedAttachments","setCurrentDeletedAttachments","_objectSpread","payload","_props$onChange","Controlled","render"],"sources":["Attachments.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {fn} from 'storybook/test';\nimport {Attachments} from './Attachments';\n\ntype AttachmentsProps = React.ComponentProps<typeof Attachments>;\ntype Attachment = NonNullable<AttachmentsProps['attachments']>[number];\n\nconst attachments: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n];\n\nconst attachmentsLongList: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {id: 'schema', name: 'schema.json'},\n {id: 'changelog', name: 'CHANGELOG.md'},\n {id: 'weekly-report', name: 'weekly-report.sql'},\n {id: 'monthly-report', name: 'monthly-report.sql'},\n {id: 'data-export', name: 'data-export.csv'},\n {id: 'users-dump', name: 'users-dump.csv'},\n {id: 'metrics', name: 'metrics.tsv'},\n {id: 'notes', name: 'notes.txt'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n {\n id: 'dashboard',\n name: 'Main dashboard',\n link: 'https://example.com/dashboards/main',\n token: 'dashboard-token',\n },\n {\n id: 'runbook',\n name: 'Incident runbook',\n link: 'https://example.com/docs/runbook',\n token: 'documentation-token',\n },\n {\n id: 'api-reference',\n name: 'API reference',\n link: 'https://example.com/docs/api',\n token: 'documentation-token',\n },\n {\n id: 'grafana',\n name: 'Grafana board',\n link: 'https://example.com/grafana/board',\n token: 'dashboard-token',\n },\n {\n id: 'kibana',\n name: 'Kibana logs',\n link: 'https://example.com/kibana/logs',\n token: 'dashboard-token',\n },\n {\n id: 'wiki',\n name: 'Team wiki',\n link: 'https://example.com/wiki/team',\n token: 'documentation-token',\n },\n {\n id: 'design-doc',\n name: 'Design document',\n link: 'https://example.com/docs/design',\n token: 'documentation-token',\n },\n {\n id: 'roadmap',\n name: 'Product roadmap',\n link: 'https://example.com/roadmap',\n token: 'documentation-token',\n },\n {\n id: 'analytics',\n name: 'Analytics dashboard',\n link: 'https://example.com/dashboards/analytics',\n token: 'dashboard-token',\n },\n];\n\nconst deletedAttachments: Attachment[] = [\n {id: 'archive', name: 'archive.csv'},\n {\n id: 'old-dashboard',\n name: 'Old dashboard',\n link: 'https://example.com/dashboards/old',\n token: 'dashboard-token',\n },\n];\n\nconst tokens: NonNullable<AttachmentsProps['tokens']> = [\n {value: 'documentation-token', title: 'Documentation token'},\n {value: 'dashboard-token', title: 'Dashboard token'},\n];\n\nconst meta = {\n title: 'Modules/Attachments',\n component: Attachments,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{height: 500, width: 322, overflow: 'hidden'}}>\n <Story />\n </div>\n ),\n ],\n args: {\n tokens,\n onChange: fn(),\n },\n} satisfies Meta<typeof Attachments>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Empty state with content configured through `placeholderProps`. */\nexport const Default: Story = {\n args: {\n placeholderProps: {\n title: 'No attachments',\n description: 'Add files or links that should be available to the query.',\n linkForDoc: '#attachments-help',\n linkText: 'About attachments',\n },\n onItemClick: console.info,\n },\n};\n\n/** Initial files and links supplied through the uncontrolled `attachments` API. */\nexport const WithAttachments: Story = {\n args: {\n attachments,\n deletedAttachments: [],\n onItemClick: console.info,\n },\n};\n\n/** Current and deleted collections. Open the Deleted tab to restore an attachment. */\nexport const WithDeletedAttachments: Story = {\n args: {\n attachments,\n deletedAttachments,\n onItemClick: console.info,\n },\n};\n\nexport const WithLongList: Story = {\n args: {\n attachments: attachmentsLongList,\n deletedAttachments: [],\n onItemClick: console.info,\n },\n};\n\nconst ControlledAttachments = (props: AttachmentsProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments ?? []);\n const [currentDeletedAttachments, setCurrentDeletedAttachments] = useState(\n props.deletedAttachments ?? [],\n );\n\n return (\n <Attachments\n {...props}\n attachments={currentAttachments}\n deletedAttachments={currentDeletedAttachments}\n onItemClick={console.info}\n onChange={(payload) => {\n setCurrentAttachments(payload.attachments);\n setCurrentDeletedAttachments(payload.deletedAttachments);\n props.onChange?.(payload);\n }}\n />\n );\n};\n\n/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */\nexport const Controlled: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n render: (args) => <ControlledAttachments {...args} />,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","Flex","List","AttachmentItem","isInteractiveTarget","jsx","_jsx","AttachmentList","_ref","attachments","onEdit","onDelete","onRevert","wasAddedIds","wasEditedIds","editingIds","renderEditForm","className","isDeleted","onItemClick","listProps","_objectWithoutProperties","_excluded","addedIdsSet","Set","editedIdsSet","editingIdsSet","handleItemClick","item","index","fromKeyboard","event","has","id","target","width","height","children","_objectSpread","filterable","virtualized","items","renderItem","attachment","wasAdded","wasEdited"],"sources":["AttachmentList.tsx"],"sourcesContent":["import React, {ReactNode, useMemo} from 'react';\nimport {Flex, List, ListProps} from '@gravity-ui/uikit';\nimport {AttachmentItem, AttachmentItemProps} from './internal/AttachmentItem/AttachmentItem';\nimport {isInteractiveTarget} from './helpers/isInteractiveTarget';\nimport './AttachmentList.scss';\n\nexport type AttachmentListProps<\n T extends AttachmentItemProps['attachment'] = AttachmentItemProps['attachment'],\n> = Omit<ListProps<T>, 'items' | 'selectedItemIndex' | 'virtualized'> & {\n attachments: AttachmentItemProps['attachment'][];\n className?: string;\n onDelete?: (attachment: AttachmentItemProps['attachment']) => void;\n onEdit?: (attachment: AttachmentItemProps['attachment']) => void;\n onRevert?: (attachment: AttachmentItemProps['attachment']) => void;\n\n renderEditForm?: (attachment: AttachmentItemProps['attachment']) => ReactNode;\n\n wasAddedIds?: string[];\n wasEditedIds?: string[];\n\n editingIds?: string[];\n\n isDeleted?: boolean;\n};\n\nexport const AttachmentList = ({\n attachments,\n onEdit,\n onDelete,\n onRevert,\n wasAddedIds,\n wasEditedIds,\n editingIds,\n renderEditForm,\n className,\n isDeleted,\n onItemClick,\n ...listProps\n}: AttachmentListProps) => {\n const addedIdsSet = useMemo(() => new Set(wasAddedIds), [wasAddedIds]);\n const editedIdsSet = useMemo(() => new Set(wasEditedIds), [wasEditedIds]);\n const editingIdsSet = useMemo(() => new Set(editingIds), [editingIds]);\n\n const handleItemClick: AttachmentListProps['onItemClick'] = (\n item,\n index,\n fromKeyboard,\n event,\n ) => {\n if (editingIdsSet.has(item.id)) return;\n if (isInteractiveTarget(event?.target)) return;\n onItemClick?.(item, index, fromKeyboard, event);\n };\n\n return (\n <Flex className={className} width=\"100%\" height=\"100%\">\n <List<AttachmentListProps['attachments'][number]>\n filterable={false}\n virtualized={false}\n items={attachments}\n onItemClick={handleItemClick}\n renderItem={(attachment) => {\n if (editingIdsSet.has(attachment.id)) {\n return renderEditForm?.(attachment);\n }\n\n return (\n <AttachmentItem\n attachment={attachment}\n wasAdded={addedIdsSet.has(attachment.id)}\n wasEdited={editedIdsSet.has(attachment.id)}\n onEdit={onEdit}\n onRevert={onRevert}\n onDelete={onDelete}\n isDeleted={isDeleted}\n />\n );\n }}\n {...listProps}\n />\n </Flex>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAA,OAAOA,KAAK,IAAcC,OAAO,QAAO,OAAO;AAC/C,SAAQC,IAAI,EAAEC,IAAI,QAAkB,mBAAmB;AACvD,SAAQC,cAAc;AACtB,SAAQC,mBAAmB;AAC3B;AAA+B,SAAAC,GAAA,IAAAC,IAAA;AAqB/B,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAaA;EAAA,IAZvBC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IACdC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,SAAS,GAAAV,IAAA,CAATU,SAAS;IACTC,WAAW,GAAAX,IAAA,CAAXW,WAAW;IACRC,SAAS,GAAAC,wBAAA,CAAAb,IAAA,EAAAc,SAAA;EAEZ,IAAMC,WAAW,GAAGvB,OAAO,CAAC;IAAA,OAAM,IAAIwB,GAAG,CAACX,WAAW,CAAC;EAAA,GAAE,CAACA,WAAW,CAAC,CAAC;EACtE,IAAMY,YAAY,GAAGzB,OAAO,CAAC;IAAA,OAAM,IAAIwB,GAAG,CAACV,YAAY,CAAC;EAAA,GAAE,CAACA,YAAY,CAAC,CAAC;EACzE,IAAMY,aAAa,GAAG1B,OAAO,CAAC;IAAA,OAAM,IAAIwB,GAAG,CAACT,UAAU,CAAC;EAAA,GAAE,CAACA,UAAU,CAAC,CAAC;EAEtE,IAAMY,eAAmD,GAAG,SAAtDA,eAAmDA,CACrDC,IAAI,EACJC,KAAK,EACLC,YAAY,EACZC,KAAK,EACJ;IACD,IAAIL,aAAa,CAACM,GAAG,CAACJ,IAAI,CAACK,EAAE,CAAC,EAAE;IAChC,IAAI7B,mBAAmB,CAAC2B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,MAAM,CAAC,EAAE;IACxCf,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAGS,IAAI,EAAEC,KAAK,EAAEC,YAAY,EAAEC,KAAK,CAAC;EACnD,CAAC;EAED,oBACIzB,IAAA,CAACL,IAAI;IAACgB,SAAS,EAAEA,SAAU;IAACkB,KAAK,EAAC,MAAM;IAACC,MAAM,EAAC,MAAM;IAAAC,QAAA,
|
|
1
|
+
{"version":3,"names":["React","useMemo","Flex","List","AttachmentItem","isInteractiveTarget","jsx","_jsx","AttachmentList","_ref","attachments","onEdit","onDelete","onRevert","wasAddedIds","wasEditedIds","editingIds","renderEditForm","className","isDeleted","onItemClick","listProps","_objectWithoutProperties","_excluded","addedIdsSet","Set","editedIdsSet","editingIdsSet","handleItemClick","item","index","fromKeyboard","event","has","id","target","width","height","overflow","children","_objectSpread","filterable","virtualized","items","renderItem","attachment","wasAdded","wasEdited"],"sources":["AttachmentList.tsx"],"sourcesContent":["import React, {ReactNode, useMemo} from 'react';\nimport {Flex, List, ListProps} from '@gravity-ui/uikit';\nimport {AttachmentItem, AttachmentItemProps} from './internal/AttachmentItem/AttachmentItem';\nimport {isInteractiveTarget} from './helpers/isInteractiveTarget';\nimport './AttachmentList.scss';\n\nexport type AttachmentListProps<\n T extends AttachmentItemProps['attachment'] = AttachmentItemProps['attachment'],\n> = Omit<ListProps<T>, 'items' | 'selectedItemIndex' | 'virtualized'> & {\n attachments: AttachmentItemProps['attachment'][];\n className?: string;\n onDelete?: (attachment: AttachmentItemProps['attachment']) => void;\n onEdit?: (attachment: AttachmentItemProps['attachment']) => void;\n onRevert?: (attachment: AttachmentItemProps['attachment']) => void;\n\n renderEditForm?: (attachment: AttachmentItemProps['attachment']) => ReactNode;\n\n wasAddedIds?: string[];\n wasEditedIds?: string[];\n\n editingIds?: string[];\n\n isDeleted?: boolean;\n};\n\nexport const AttachmentList = ({\n attachments,\n onEdit,\n onDelete,\n onRevert,\n wasAddedIds,\n wasEditedIds,\n editingIds,\n renderEditForm,\n className,\n isDeleted,\n onItemClick,\n ...listProps\n}: AttachmentListProps) => {\n const addedIdsSet = useMemo(() => new Set(wasAddedIds), [wasAddedIds]);\n const editedIdsSet = useMemo(() => new Set(wasEditedIds), [wasEditedIds]);\n const editingIdsSet = useMemo(() => new Set(editingIds), [editingIds]);\n\n const handleItemClick: AttachmentListProps['onItemClick'] = (\n item,\n index,\n fromKeyboard,\n event,\n ) => {\n if (editingIdsSet.has(item.id)) return;\n if (isInteractiveTarget(event?.target)) return;\n onItemClick?.(item, index, fromKeyboard, event);\n };\n\n return (\n <Flex className={className} width=\"100%\" height=\"100%\" overflow=\"auto\">\n <List<AttachmentListProps['attachments'][number]>\n filterable={false}\n virtualized={false}\n items={attachments}\n onItemClick={handleItemClick}\n renderItem={(attachment) => {\n if (editingIdsSet.has(attachment.id)) {\n return renderEditForm?.(attachment);\n }\n\n return (\n <AttachmentItem\n attachment={attachment}\n wasAdded={addedIdsSet.has(attachment.id)}\n wasEdited={editedIdsSet.has(attachment.id)}\n onEdit={onEdit}\n onRevert={onRevert}\n onDelete={onDelete}\n isDeleted={isDeleted}\n />\n );\n }}\n {...listProps}\n />\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
.qp-attachments {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
}
|
|
1
5
|
.qp-attachments__panel {
|
|
2
|
-
flex: 1;
|
|
6
|
+
flex: 1 1 0;
|
|
7
|
+
min-height: 0;
|
|
8
|
+
max-height: 100%;
|
|
9
|
+
overflow: hidden;
|
|
3
10
|
}
|
|
4
11
|
.qp-attachments__tab .g-tab__title {
|
|
5
12
|
display: flex;
|
|
@@ -8,5 +15,10 @@
|
|
|
8
15
|
.qp-attachments__tab-list {
|
|
9
16
|
padding-left: var(--g-spacing-4);
|
|
10
17
|
padding-right: var(--g-spacing-4);
|
|
18
|
+
flex-shrink: 0;
|
|
19
|
+
}
|
|
20
|
+
.qp-attachments__list {
|
|
21
|
+
min-height: 0;
|
|
22
|
+
overflow-y: auto;
|
|
11
23
|
}
|
|
12
24
|
/*# sourceMappingURL=Attachments.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AACI;EACI,
|
|
1
|
+
{"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AAAA;EACI,aAAA;EACA,sBAAA;AACJ;AACI;EACI,WAAA;EACA,aAAA;EACA,gBAAA;EACA,gBAAA;AACR;AAEI;EACI,aAAA;EACA,uBAAA;AAAR;AAGI;EACI,gCAAA;EACA,iCAAA;EACA,cAAA;AADR;AAII;EACI,aAAA;EACA,gBAAA;AAFR","file":"Attachments.css","sourcesContent":[".qp-attachments {\n display: flex;\n flex-direction: column;\n \n &__panel {\n flex: 1 1 0;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n }\n\n &__tab .g-tab__title {\n display: flex;\n gap: var(--g-spacing-2)\n }\n\n &__tab-list {\n padding-left: var(--g-spacing-4);\n padding-right: var(--g-spacing-4);\n flex-shrink: 0;\n }\n\n &__list {\n min-height: 0;\n overflow-y: auto;\n }\n}"],"sourceRoot":""}
|
|
@@ -15,7 +15,7 @@ import "core-js/modules/es.iterator.some.js";
|
|
|
15
15
|
import "core-js/modules/es.object.to-string.js";
|
|
16
16
|
import "core-js/modules/es.string.link.js";
|
|
17
17
|
import React, { useMemo, useRef, useState } from 'react';
|
|
18
|
-
import { Button, Flex, Icon, Tab, TabList, TabPanel, TabProvider, Text } from '@gravity-ui/uikit';
|
|
18
|
+
import { Box, Button, Flex, Icon, Tab, TabList, TabPanel, TabProvider, Text } from '@gravity-ui/uikit';
|
|
19
19
|
import { AttachmentList, AttachmentListPlaceholder, EditAttachmentItem } from "../../components";
|
|
20
20
|
import { createUuid } from "../../helpers/createUuid";
|
|
21
21
|
import { isObjectEqual } from "../../helpers/isObjectEqual";
|
|
@@ -245,11 +245,10 @@ export var Attachments = function Attachments(_ref) {
|
|
|
245
245
|
deletedAttachments: patchDeletedAttachList
|
|
246
246
|
});
|
|
247
247
|
};
|
|
248
|
-
return /*#__PURE__*/_jsx(
|
|
248
|
+
return /*#__PURE__*/_jsx(Box, {
|
|
249
249
|
className: block(),
|
|
250
|
-
direction: "column",
|
|
251
|
-
width: "100%",
|
|
252
250
|
height: "100%",
|
|
251
|
+
overflow: "hidden",
|
|
253
252
|
children: /*#__PURE__*/_jsxs(TabProvider, {
|
|
254
253
|
value: currentTab,
|
|
255
254
|
onUpdate: function onUpdate(tab) {
|
|
@@ -285,11 +284,12 @@ export var Attachments = function Attachments(_ref) {
|
|
|
285
284
|
value: "Current",
|
|
286
285
|
children: /*#__PURE__*/_jsxs(Flex, {
|
|
287
286
|
spacing: {
|
|
288
|
-
|
|
287
|
+
py: 3
|
|
289
288
|
},
|
|
290
289
|
direction: "column",
|
|
291
290
|
width: "100%",
|
|
292
291
|
height: "100%",
|
|
292
|
+
gap: 3,
|
|
293
293
|
children: [attachList.length ? /*#__PURE__*/_jsx(AttachmentList, _objectSpread(_objectSpread({}, attachmentListProps), {}, {
|
|
294
294
|
attachments: attachList,
|
|
295
295
|
wasAddedIds: wasAddedIds,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useRef","useState","Button","Flex","Icon","Tab","TabList","TabPanel","TabProvider","Text","AttachmentList","AttachmentListPlaceholder","EditAttachmentItem","createUuid","isObjectEqual","Plus","cn","i18n","jsx","_jsx","jsxs","_jsxs","block","Attachments","_ref","tokens","placeholderProps","attachmentListProps","onChange","onItemClick","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_useState","_useState2","_slicedToArray","currentTab","setCurrentTab","_useState3","_useState4","innerAttachList","setInnerAttachList","_useState5","_useState6","innerDeletedAttachList","setInnerDeletedAttachList","_useState7","_useState8","editingIds","setEditingIds","_useState9","_useState0","wasAddedIds","setWasAddedIds","_useState1","_useState10","wasEdited","setWasEditedIds","attachList","deletedAttachList","attachCount","filter","a","isNew","length","defaultAttachList","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","concat","_toConsumableArray","handleAddEmptyFile","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","className","direction","width","height","children","value","onUpdate","tab","variant","color","spacing","pt","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","onAddFile","onAddLink","Boolean","px","gap","onClick","data","view","isDeleted","onRevert"],"sources":["Attachments.tsx"],"sourcesContent":["import React, {useMemo, useRef, useState} from 'react';\nimport {Button, Flex, Icon, Tab, TabList, TabPanel, TabProvider, Text} from '@gravity-ui/uikit';\nimport {AttachmentList, AttachmentListPlaceholder, EditAttachmentItem} from '../../components';\nimport {createUuid} from '../../helpers/createUuid';\nimport {isObjectEqual} from '../../helpers/isObjectEqual';\nimport {Plus} from '@gravity-ui/icons';\nimport type {\n AttachmentItemProps,\n AttachmentListPlaceholderProps,\n AttachmentListProps,\n EditLinkValues,\n} from '../../components';\nimport cn from 'bem-cn-lite';\n\nimport i18n from './i18n';\n\nimport './Attachments.scss';\n\ntype TabVariants = 'Current' | 'Deleted';\n\nexport type AttachItem = AttachmentItemProps['attachment'] & {token?: string; isNew?: boolean};\n\nexport type AttachmentsProps = {\n tokens?: {value: string; title: string}[];\n placeholderProps?: Omit<AttachmentListPlaceholderProps, 'onAddFile' | 'onAddLink'>;\n attachmentListProps?: Pick<AttachmentListProps, 'className'>;\n attachments?: AttachItem[];\n deletedAttachments?: AttachItem[];\n onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];\n onChange?: (payload: {attachments: AttachItem[]; deletedAttachments: AttachItem[]}) => void;\n};\n\nconst block = cn('qp-attachments');\n\nexport const Attachments = ({\n tokens,\n placeholderProps,\n attachmentListProps,\n onChange,\n onItemClick,\n attachments: customerAttachments,\n deletedAttachments: customerDeletedAttachments,\n}: AttachmentsProps) => {\n const [currentTab, setCurrentTab] = useState<'Current' | 'Deleted'>('Current');\n\n const [innerAttachList, setInnerAttachList] = useState<AttachItem[]>(customerAttachments ?? []);\n const [innerDeletedAttachList, setInnerDeletedAttachList] = useState<AttachItem[]>(\n customerDeletedAttachments ?? [],\n );\n\n const [editingIds, setEditingIds] = useState<string[]>([]);\n const [wasAddedIds, setWasAddedIds] = useState<string[]>([]);\n const [wasEdited, setWasEditedIds] = useState<string[]>([]);\n\n const attachList = customerAttachments ?? innerAttachList;\n const deletedAttachList = customerDeletedAttachments ?? innerDeletedAttachList;\n\n const attachCount = useMemo(() => attachList.filter((a) => !a.isNew).length, [attachList]);\n\n const defaultAttachList = useRef(attachList);\n\n const getDefaultValuesForLink = (linkId: string) => {\n const currentLink = attachList.find((a) => a.id === linkId);\n return {\n name: currentLink?.name ?? '',\n link: currentLink?.link ?? '',\n token: currentLink?.token ?? '',\n };\n };\n\n const runAfterAttachAdded = (attachId: string, newAttach: AttachItem) => {\n const editedAttach = defaultAttachList.current.find((a) => a.id === attachId);\n\n if (!editedAttach) return;\n\n if (isObjectEqual(editedAttach, newAttach)) {\n setWasEditedIds(wasEdited.filter((id) => id !== attachId));\n return;\n }\n\n setWasEditedIds([...wasEdited, attachId]);\n };\n\n const handleAddEmptyFile = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAddEmptyLink = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', token: '', link: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAcceptFile = (fileId: string, fileName: string) => {\n const patchedFile = attachList.find((a) => a.id === fileId);\n if (!patchedFile) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === fileId) return {id: fileId, name: fileName};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(fileId, {id: fileId, name: fileName});\n };\n\n const handleAcceptLink = (linkId: string, link: EditLinkValues) => {\n const patchedLink = attachList.find((a) => a.id === linkId);\n if (!patchedLink) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== linkId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === linkId) return {id: linkId, ...link};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(linkId, {id: linkId, ...link});\n };\n\n const handleCancelEdit = (fileId: string) => {\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.filter((a) => !a.isNew);\n\n const wasItNewAttach = attachList.some((a) => a.isNew);\n if (wasItNewAttach) {\n setWasAddedIds(wasAddedIds.filter((id) => id !== fileId));\n }\n\n setInnerAttachList(patchAttachList);\n setEditingIds(patchEditingIds);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleEdit = (editAttachId: string) => {\n const patchEditingIds = [...editingIds, editAttachId];\n\n setEditingIds(patchEditingIds);\n };\n\n const handleDelete = (attachId: string) => {\n const deletedAttachmen = attachList.find((a) => a.id === attachId);\n\n if (!deletedAttachmen) return;\n\n const patchAttachList = attachList.filter((a) => a.id !== attachId);\n const patchDeletedAttachList = [...deletedAttachList, deletedAttachmen];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleDeleteAll = () => {\n const patchAttachList: never[] = [];\n const patchDeletedAttachList = [\n ...deletedAttachList,\n ...attachList.filter((a) => !a.isNew),\n ];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleRevertDelete = (attachId: string) => {\n const revertAttach = deletedAttachList.find((a) => a.id === attachId);\n\n if (!revertAttach) return;\n\n const patchAttachList = [...attachList, revertAttach];\n const patchDeletedAttachList = deletedAttachList.filter((a) => a.id !== attachId);\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n return (\n <Flex className={block()} direction=\"column\" width=\"100%\" height=\"100%\">\n <TabProvider value={currentTab} onUpdate={(tab) => setCurrentTab(tab as TabVariants)}>\n <TabList className={block('tab-list')}>\n <Tab className={block('tab')} value=\"Current\">\n <Text variant=\"body-1\">Current</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {attachCount}\n </Text>\n </Tab>\n <Tab className={block('tab')} value=\"Deleted\">\n <Text variant=\"body-1\">Deleted</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {deletedAttachList.length}\n </Text>\n </Tab>\n </TabList>\n\n <TabPanel className={block('panel')} value=\"Current\">\n <Flex spacing={{pt: 3}} direction=\"column\" width=\"100%\" height=\"100%\">\n {attachList.length ? (\n <AttachmentList\n {...attachmentListProps}\n attachments={attachList}\n wasAddedIds={wasAddedIds}\n wasEditedIds={wasEdited}\n editingIds={editingIds}\n onEdit={(attach) => handleEdit(attach.id)}\n onDelete={(attach) => handleDelete(attach.id)}\n onItemClick={onItemClick}\n renderEditForm={(attach) => {\n const isLink = typeof attach.link === 'string';\n\n if (isLink) {\n const defaultLinkValues = getDefaultValuesForLink(\n attach.id,\n );\n\n return (\n <EditAttachmentItem\n type=\"link\"\n onAccept={(link) =>\n handleAcceptLink(attach.id, link)\n }\n defaultValues={defaultLinkValues}\n tokens={tokens}\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n type=\"file\"\n defaultFileName={attach.name}\n onAccept={(pathName) =>\n handleAcceptFile(attach.id, pathName)\n }\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }}\n />\n ) : (\n <AttachmentListPlaceholder\n onAddFile={handleAddEmptyFile}\n onAddLink={handleAddEmptyLink}\n {...placeholderProps}\n />\n )}\n {Boolean(attachList.length) && (\n <Flex spacing={{px: 4}} gap={2}>\n <Button onClick={handleAddEmptyFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button view=\"outlined\" onClick={handleAddEmptyLink}>\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n\n <Button view=\"flat\" onClick={handleDeleteAll}>\n {i18n('action_remove-all')}\n </Button>\n </Flex>\n )}\n </Flex>\n </TabPanel>\n\n <TabPanel className={block('panel')} value=\"Deleted\">\n <Flex spacing={{pt: 3}} width=\"100%\" height=\"100%\">\n <AttachmentList\n {...attachmentListProps}\n isDeleted\n attachments={deletedAttachList}\n onRevert={(attach) => handleRevertDelete(attach.id)}\n onItemClick={onItemClick}\n />\n </Flex>\n </TabPanel>\n </TabProvider>\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useMemo","useRef","useState","Box","Button","Flex","Icon","Tab","TabList","TabPanel","TabProvider","Text","AttachmentList","AttachmentListPlaceholder","EditAttachmentItem","createUuid","isObjectEqual","Plus","cn","i18n","jsx","_jsx","jsxs","_jsxs","block","Attachments","_ref","tokens","placeholderProps","attachmentListProps","onChange","onItemClick","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_useState","_useState2","_slicedToArray","currentTab","setCurrentTab","_useState3","_useState4","innerAttachList","setInnerAttachList","_useState5","_useState6","innerDeletedAttachList","setInnerDeletedAttachList","_useState7","_useState8","editingIds","setEditingIds","_useState9","_useState0","wasAddedIds","setWasAddedIds","_useState1","_useState10","wasEdited","setWasEditedIds","attachList","deletedAttachList","attachCount","filter","a","isNew","length","defaultAttachList","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","concat","_toConsumableArray","handleAddEmptyFile","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","className","height","overflow","children","value","onUpdate","tab","variant","color","spacing","py","direction","width","gap","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","onAddFile","onAddLink","Boolean","px","onClick","data","view","pt","isDeleted","onRevert"],"sources":["Attachments.tsx"],"sourcesContent":["import React, {useMemo, useRef, useState} from 'react';\nimport {\n Box,\n Button,\n Flex,\n Icon,\n Tab,\n TabList,\n TabPanel,\n TabProvider,\n Text,\n} from '@gravity-ui/uikit';\nimport {AttachmentList, AttachmentListPlaceholder, EditAttachmentItem} from '../../components';\nimport {createUuid} from '../../helpers/createUuid';\nimport {isObjectEqual} from '../../helpers/isObjectEqual';\nimport {Plus} from '@gravity-ui/icons';\nimport type {\n AttachmentItemProps,\n AttachmentListPlaceholderProps,\n AttachmentListProps,\n EditLinkValues,\n} from '../../components';\nimport cn from 'bem-cn-lite';\n\nimport i18n from './i18n';\n\nimport './Attachments.scss';\n\ntype TabVariants = 'Current' | 'Deleted';\n\nexport type AttachItem = AttachmentItemProps['attachment'] & {token?: string; isNew?: boolean};\n\nexport type AttachmentsProps = {\n tokens?: {value: string; title: string}[];\n placeholderProps?: Omit<AttachmentListPlaceholderProps, 'onAddFile' | 'onAddLink'>;\n attachmentListProps?: Pick<AttachmentListProps, 'className'>;\n attachments?: AttachItem[];\n deletedAttachments?: AttachItem[];\n onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];\n onChange?: (payload: {attachments: AttachItem[]; deletedAttachments: AttachItem[]}) => void;\n};\n\nconst block = cn('qp-attachments');\n\nexport const Attachments = ({\n tokens,\n placeholderProps,\n attachmentListProps,\n onChange,\n onItemClick,\n attachments: customerAttachments,\n deletedAttachments: customerDeletedAttachments,\n}: AttachmentsProps) => {\n const [currentTab, setCurrentTab] = useState<'Current' | 'Deleted'>('Current');\n\n const [innerAttachList, setInnerAttachList] = useState<AttachItem[]>(customerAttachments ?? []);\n const [innerDeletedAttachList, setInnerDeletedAttachList] = useState<AttachItem[]>(\n customerDeletedAttachments ?? [],\n );\n\n const [editingIds, setEditingIds] = useState<string[]>([]);\n const [wasAddedIds, setWasAddedIds] = useState<string[]>([]);\n const [wasEdited, setWasEditedIds] = useState<string[]>([]);\n\n const attachList = customerAttachments ?? innerAttachList;\n const deletedAttachList = customerDeletedAttachments ?? innerDeletedAttachList;\n\n const attachCount = useMemo(() => attachList.filter((a) => !a.isNew).length, [attachList]);\n\n const defaultAttachList = useRef(attachList);\n\n const getDefaultValuesForLink = (linkId: string) => {\n const currentLink = attachList.find((a) => a.id === linkId);\n return {\n name: currentLink?.name ?? '',\n link: currentLink?.link ?? '',\n token: currentLink?.token ?? '',\n };\n };\n\n const runAfterAttachAdded = (attachId: string, newAttach: AttachItem) => {\n const editedAttach = defaultAttachList.current.find((a) => a.id === attachId);\n\n if (!editedAttach) return;\n\n if (isObjectEqual(editedAttach, newAttach)) {\n setWasEditedIds(wasEdited.filter((id) => id !== attachId));\n return;\n }\n\n setWasEditedIds([...wasEdited, attachId]);\n };\n\n const handleAddEmptyFile = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAddEmptyLink = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', token: '', link: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAcceptFile = (fileId: string, fileName: string) => {\n const patchedFile = attachList.find((a) => a.id === fileId);\n if (!patchedFile) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === fileId) return {id: fileId, name: fileName};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(fileId, {id: fileId, name: fileName});\n };\n\n const handleAcceptLink = (linkId: string, link: EditLinkValues) => {\n const patchedLink = attachList.find((a) => a.id === linkId);\n if (!patchedLink) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== linkId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === linkId) return {id: linkId, ...link};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(linkId, {id: linkId, ...link});\n };\n\n const handleCancelEdit = (fileId: string) => {\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.filter((a) => !a.isNew);\n\n const wasItNewAttach = attachList.some((a) => a.isNew);\n if (wasItNewAttach) {\n setWasAddedIds(wasAddedIds.filter((id) => id !== fileId));\n }\n\n setInnerAttachList(patchAttachList);\n setEditingIds(patchEditingIds);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleEdit = (editAttachId: string) => {\n const patchEditingIds = [...editingIds, editAttachId];\n\n setEditingIds(patchEditingIds);\n };\n\n const handleDelete = (attachId: string) => {\n const deletedAttachmen = attachList.find((a) => a.id === attachId);\n\n if (!deletedAttachmen) return;\n\n const patchAttachList = attachList.filter((a) => a.id !== attachId);\n const patchDeletedAttachList = [...deletedAttachList, deletedAttachmen];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleDeleteAll = () => {\n const patchAttachList: never[] = [];\n const patchDeletedAttachList = [\n ...deletedAttachList,\n ...attachList.filter((a) => !a.isNew),\n ];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleRevertDelete = (attachId: string) => {\n const revertAttach = deletedAttachList.find((a) => a.id === attachId);\n\n if (!revertAttach) return;\n\n const patchAttachList = [...attachList, revertAttach];\n const patchDeletedAttachList = deletedAttachList.filter((a) => a.id !== attachId);\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n return (\n <Box className={block()} height=\"100%\" overflow=\"hidden\">\n <TabProvider value={currentTab} onUpdate={(tab) => setCurrentTab(tab as TabVariants)}>\n <TabList className={block('tab-list')}>\n <Tab className={block('tab')} value=\"Current\">\n <Text variant=\"body-1\">Current</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {attachCount}\n </Text>\n </Tab>\n <Tab className={block('tab')} value=\"Deleted\">\n <Text variant=\"body-1\">Deleted</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {deletedAttachList.length}\n </Text>\n </Tab>\n </TabList>\n\n <TabPanel className={block('panel')} value=\"Current\">\n <Flex spacing={{py: 3}} direction=\"column\" width=\"100%\" height=\"100%\" gap={3}>\n {attachList.length ? (\n <AttachmentList\n {...attachmentListProps}\n attachments={attachList}\n wasAddedIds={wasAddedIds}\n wasEditedIds={wasEdited}\n editingIds={editingIds}\n onEdit={(attach) => handleEdit(attach.id)}\n onDelete={(attach) => handleDelete(attach.id)}\n onItemClick={onItemClick}\n renderEditForm={(attach) => {\n const isLink = typeof attach.link === 'string';\n\n if (isLink) {\n const defaultLinkValues = getDefaultValuesForLink(\n attach.id,\n );\n\n return (\n <EditAttachmentItem\n type=\"link\"\n onAccept={(link) =>\n handleAcceptLink(attach.id, link)\n }\n defaultValues={defaultLinkValues}\n tokens={tokens}\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n type=\"file\"\n defaultFileName={attach.name}\n onAccept={(pathName) =>\n handleAcceptFile(attach.id, pathName)\n }\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }}\n />\n ) : (\n <AttachmentListPlaceholder\n onAddFile={handleAddEmptyFile}\n onAddLink={handleAddEmptyLink}\n {...placeholderProps}\n />\n )}\n {Boolean(attachList.length) && (\n <Flex spacing={{px: 4}} gap={2}>\n <Button onClick={handleAddEmptyFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button view=\"outlined\" onClick={handleAddEmptyLink}>\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n\n <Button view=\"flat\" onClick={handleDeleteAll}>\n {i18n('action_remove-all')}\n </Button>\n </Flex>\n )}\n </Flex>\n </TabPanel>\n\n <TabPanel className={block('panel')} value=\"Deleted\">\n <Flex spacing={{pt: 3}} width=\"100%\" height=\"100%\">\n <AttachmentList\n {...attachmentListProps}\n isDeleted\n attachments={deletedAttachList}\n onRevert={(attach) => handleRevertDelete(attach.id)}\n onItemClick={onItemClick}\n />\n </Flex>\n </TabPanel>\n </TabProvider>\n </Box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
.qp-attachments {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
|
|
2
5
|
&__panel {
|
|
3
|
-
flex: 1;
|
|
6
|
+
flex: 1 1 0;
|
|
7
|
+
min-height: 0;
|
|
8
|
+
max-height: 100%;
|
|
9
|
+
overflow: hidden;
|
|
4
10
|
}
|
|
5
11
|
|
|
6
12
|
&__tab .g-tab__title {
|
|
@@ -11,5 +17,11 @@
|
|
|
11
17
|
&__tab-list {
|
|
12
18
|
padding-left: var(--g-spacing-4);
|
|
13
19
|
padding-right: var(--g-spacing-4);
|
|
20
|
+
flex-shrink: 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&__list {
|
|
24
|
+
min-height: 0;
|
|
25
|
+
overflow-y: auto;
|
|
14
26
|
}
|
|
15
27
|
}
|
|
@@ -38,5 +38,6 @@ export declare const Default: Story;
|
|
|
38
38
|
export declare const WithAttachments: Story;
|
|
39
39
|
/** Current and deleted collections. Open the Deleted tab to restore an attachment. */
|
|
40
40
|
export declare const WithDeletedAttachments: Story;
|
|
41
|
+
export declare const WithLongList: Story;
|
|
41
42
|
/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */
|
|
42
43
|
export declare const Controlled: Story;
|
|
@@ -16,6 +16,87 @@ var attachments = [{
|
|
|
16
16
|
link: 'https://example.com/docs/query',
|
|
17
17
|
token: 'documentation-token'
|
|
18
18
|
}];
|
|
19
|
+
var attachmentsLongList = [{
|
|
20
|
+
id: 'readme',
|
|
21
|
+
name: 'README.md'
|
|
22
|
+
}, {
|
|
23
|
+
id: 'query',
|
|
24
|
+
name: 'daily-report.sql'
|
|
25
|
+
}, {
|
|
26
|
+
id: 'schema',
|
|
27
|
+
name: 'schema.json'
|
|
28
|
+
}, {
|
|
29
|
+
id: 'changelog',
|
|
30
|
+
name: 'CHANGELOG.md'
|
|
31
|
+
}, {
|
|
32
|
+
id: 'weekly-report',
|
|
33
|
+
name: 'weekly-report.sql'
|
|
34
|
+
}, {
|
|
35
|
+
id: 'monthly-report',
|
|
36
|
+
name: 'monthly-report.sql'
|
|
37
|
+
}, {
|
|
38
|
+
id: 'data-export',
|
|
39
|
+
name: 'data-export.csv'
|
|
40
|
+
}, {
|
|
41
|
+
id: 'users-dump',
|
|
42
|
+
name: 'users-dump.csv'
|
|
43
|
+
}, {
|
|
44
|
+
id: 'metrics',
|
|
45
|
+
name: 'metrics.tsv'
|
|
46
|
+
}, {
|
|
47
|
+
id: 'notes',
|
|
48
|
+
name: 'notes.txt'
|
|
49
|
+
}, {
|
|
50
|
+
id: 'documentation',
|
|
51
|
+
name: 'Query documentation',
|
|
52
|
+
link: 'https://example.com/docs/query',
|
|
53
|
+
token: 'documentation-token'
|
|
54
|
+
}, {
|
|
55
|
+
id: 'dashboard',
|
|
56
|
+
name: 'Main dashboard',
|
|
57
|
+
link: 'https://example.com/dashboards/main',
|
|
58
|
+
token: 'dashboard-token'
|
|
59
|
+
}, {
|
|
60
|
+
id: 'runbook',
|
|
61
|
+
name: 'Incident runbook',
|
|
62
|
+
link: 'https://example.com/docs/runbook',
|
|
63
|
+
token: 'documentation-token'
|
|
64
|
+
}, {
|
|
65
|
+
id: 'api-reference',
|
|
66
|
+
name: 'API reference',
|
|
67
|
+
link: 'https://example.com/docs/api',
|
|
68
|
+
token: 'documentation-token'
|
|
69
|
+
}, {
|
|
70
|
+
id: 'grafana',
|
|
71
|
+
name: 'Grafana board',
|
|
72
|
+
link: 'https://example.com/grafana/board',
|
|
73
|
+
token: 'dashboard-token'
|
|
74
|
+
}, {
|
|
75
|
+
id: 'kibana',
|
|
76
|
+
name: 'Kibana logs',
|
|
77
|
+
link: 'https://example.com/kibana/logs',
|
|
78
|
+
token: 'dashboard-token'
|
|
79
|
+
}, {
|
|
80
|
+
id: 'wiki',
|
|
81
|
+
name: 'Team wiki',
|
|
82
|
+
link: 'https://example.com/wiki/team',
|
|
83
|
+
token: 'documentation-token'
|
|
84
|
+
}, {
|
|
85
|
+
id: 'design-doc',
|
|
86
|
+
name: 'Design document',
|
|
87
|
+
link: 'https://example.com/docs/design',
|
|
88
|
+
token: 'documentation-token'
|
|
89
|
+
}, {
|
|
90
|
+
id: 'roadmap',
|
|
91
|
+
name: 'Product roadmap',
|
|
92
|
+
link: 'https://example.com/roadmap',
|
|
93
|
+
token: 'documentation-token'
|
|
94
|
+
}, {
|
|
95
|
+
id: 'analytics',
|
|
96
|
+
name: 'Analytics dashboard',
|
|
97
|
+
link: 'https://example.com/dashboards/analytics',
|
|
98
|
+
token: 'dashboard-token'
|
|
99
|
+
}];
|
|
19
100
|
var deletedAttachments = [{
|
|
20
101
|
id: 'archive',
|
|
21
102
|
name: 'archive.csv'
|
|
@@ -43,7 +124,8 @@ var meta = {
|
|
|
43
124
|
return /*#__PURE__*/_jsx("div", {
|
|
44
125
|
style: {
|
|
45
126
|
height: 500,
|
|
46
|
-
width: 322
|
|
127
|
+
width: 322,
|
|
128
|
+
overflow: 'hidden'
|
|
47
129
|
},
|
|
48
130
|
children: /*#__PURE__*/_jsx(Story, {})
|
|
49
131
|
});
|
|
@@ -71,6 +153,7 @@ export var Default = {
|
|
|
71
153
|
export var WithAttachments = {
|
|
72
154
|
args: {
|
|
73
155
|
attachments: attachments,
|
|
156
|
+
deletedAttachments: [],
|
|
74
157
|
onItemClick: console.info
|
|
75
158
|
}
|
|
76
159
|
};
|
|
@@ -83,6 +166,13 @@ export var WithDeletedAttachments = {
|
|
|
83
166
|
onItemClick: console.info
|
|
84
167
|
}
|
|
85
168
|
};
|
|
169
|
+
export var WithLongList = {
|
|
170
|
+
args: {
|
|
171
|
+
attachments: attachmentsLongList,
|
|
172
|
+
deletedAttachments: [],
|
|
173
|
+
onItemClick: console.info
|
|
174
|
+
}
|
|
175
|
+
};
|
|
86
176
|
var ControlledAttachments = function ControlledAttachments(props) {
|
|
87
177
|
var _props$attachments, _props$deletedAttachm;
|
|
88
178
|
var _useState = useState((_props$attachments = props.attachments) !== null && _props$attachments !== void 0 ? _props$attachments : []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","fn","Attachments","jsx","_jsx","attachments","id","name","link","token","deletedAttachments","tokens","value","title","meta","component","tags","parameters","layout","decorators","Story","style","height","width","children","args","onChange","Default","placeholderProps","description","linkForDoc","linkText","onItemClick","console","info","WithAttachments","WithDeletedAttachments","ControlledAttachments","props","_props$attachments","_props$deletedAttachm","_useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","currentDeletedAttachments","setCurrentDeletedAttachments","_objectSpread","payload","_props$onChange","call","Controlled","render"],"sources":["Attachments.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {fn} from 'storybook/test';\nimport {Attachments} from './Attachments';\n\ntype AttachmentsProps = React.ComponentProps<typeof Attachments>;\ntype Attachment = NonNullable<AttachmentsProps['attachments']>[number];\n\nconst attachments: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n];\n\nconst deletedAttachments: Attachment[] = [\n {id: 'archive', name: 'archive.csv'},\n {\n id: 'old-dashboard',\n name: 'Old dashboard',\n link: 'https://example.com/dashboards/old',\n token: 'dashboard-token',\n },\n];\n\nconst tokens: NonNullable<AttachmentsProps['tokens']> = [\n {value: 'documentation-token', title: 'Documentation token'},\n {value: 'dashboard-token', title: 'Dashboard token'},\n];\n\nconst meta = {\n title: 'Modules/Attachments',\n component: Attachments,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{height: 500, width: 322}}>\n <Story />\n </div>\n ),\n ],\n args: {\n tokens,\n onChange: fn(),\n },\n} satisfies Meta<typeof Attachments>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Empty state with content configured through `placeholderProps`. */\nexport const Default: Story = {\n args: {\n placeholderProps: {\n title: 'No attachments',\n description: 'Add files or links that should be available to the query.',\n linkForDoc: '#attachments-help',\n linkText: 'About attachments',\n },\n onItemClick: console.info,\n },\n};\n\n/** Initial files and links supplied through the uncontrolled `attachments` API. */\nexport const WithAttachments: Story = {\n args: {\n attachments,\n onItemClick: console.info,\n },\n};\n\n/** Current and deleted collections. Open the Deleted tab to restore an attachment. */\nexport const WithDeletedAttachments: Story = {\n args: {\n attachments,\n deletedAttachments,\n onItemClick: console.info,\n },\n};\n\nconst ControlledAttachments = (props: AttachmentsProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments ?? []);\n const [currentDeletedAttachments, setCurrentDeletedAttachments] = useState(\n props.deletedAttachments ?? [],\n );\n\n return (\n <Attachments\n {...props}\n attachments={currentAttachments}\n deletedAttachments={currentDeletedAttachments}\n onItemClick={console.info}\n onChange={(payload) => {\n setCurrentAttachments(payload.attachments);\n setCurrentDeletedAttachments(payload.deletedAttachments);\n props.onChange?.(payload);\n }}\n />\n );\n};\n\n/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */\nexport const Controlled: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n render: (args) => <ControlledAttachments {...args} />,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","fn","Attachments","jsx","_jsx","attachments","id","name","link","token","attachmentsLongList","deletedAttachments","tokens","value","title","meta","component","tags","parameters","layout","decorators","Story","style","height","width","overflow","children","args","onChange","Default","placeholderProps","description","linkForDoc","linkText","onItemClick","console","info","WithAttachments","WithDeletedAttachments","WithLongList","ControlledAttachments","props","_props$attachments","_props$deletedAttachm","_useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","currentDeletedAttachments","setCurrentDeletedAttachments","_objectSpread","payload","_props$onChange","call","Controlled","render"],"sources":["Attachments.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {fn} from 'storybook/test';\nimport {Attachments} from './Attachments';\n\ntype AttachmentsProps = React.ComponentProps<typeof Attachments>;\ntype Attachment = NonNullable<AttachmentsProps['attachments']>[number];\n\nconst attachments: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n];\n\nconst attachmentsLongList: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {id: 'schema', name: 'schema.json'},\n {id: 'changelog', name: 'CHANGELOG.md'},\n {id: 'weekly-report', name: 'weekly-report.sql'},\n {id: 'monthly-report', name: 'monthly-report.sql'},\n {id: 'data-export', name: 'data-export.csv'},\n {id: 'users-dump', name: 'users-dump.csv'},\n {id: 'metrics', name: 'metrics.tsv'},\n {id: 'notes', name: 'notes.txt'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n {\n id: 'dashboard',\n name: 'Main dashboard',\n link: 'https://example.com/dashboards/main',\n token: 'dashboard-token',\n },\n {\n id: 'runbook',\n name: 'Incident runbook',\n link: 'https://example.com/docs/runbook',\n token: 'documentation-token',\n },\n {\n id: 'api-reference',\n name: 'API reference',\n link: 'https://example.com/docs/api',\n token: 'documentation-token',\n },\n {\n id: 'grafana',\n name: 'Grafana board',\n link: 'https://example.com/grafana/board',\n token: 'dashboard-token',\n },\n {\n id: 'kibana',\n name: 'Kibana logs',\n link: 'https://example.com/kibana/logs',\n token: 'dashboard-token',\n },\n {\n id: 'wiki',\n name: 'Team wiki',\n link: 'https://example.com/wiki/team',\n token: 'documentation-token',\n },\n {\n id: 'design-doc',\n name: 'Design document',\n link: 'https://example.com/docs/design',\n token: 'documentation-token',\n },\n {\n id: 'roadmap',\n name: 'Product roadmap',\n link: 'https://example.com/roadmap',\n token: 'documentation-token',\n },\n {\n id: 'analytics',\n name: 'Analytics dashboard',\n link: 'https://example.com/dashboards/analytics',\n token: 'dashboard-token',\n },\n];\n\nconst deletedAttachments: Attachment[] = [\n {id: 'archive', name: 'archive.csv'},\n {\n id: 'old-dashboard',\n name: 'Old dashboard',\n link: 'https://example.com/dashboards/old',\n token: 'dashboard-token',\n },\n];\n\nconst tokens: NonNullable<AttachmentsProps['tokens']> = [\n {value: 'documentation-token', title: 'Documentation token'},\n {value: 'dashboard-token', title: 'Dashboard token'},\n];\n\nconst meta = {\n title: 'Modules/Attachments',\n component: Attachments,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{height: 500, width: 322, overflow: 'hidden'}}>\n <Story />\n </div>\n ),\n ],\n args: {\n tokens,\n onChange: fn(),\n },\n} satisfies Meta<typeof Attachments>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Empty state with content configured through `placeholderProps`. */\nexport const Default: Story = {\n args: {\n placeholderProps: {\n title: 'No attachments',\n description: 'Add files or links that should be available to the query.',\n linkForDoc: '#attachments-help',\n linkText: 'About attachments',\n },\n onItemClick: console.info,\n },\n};\n\n/** Initial files and links supplied through the uncontrolled `attachments` API. */\nexport const WithAttachments: Story = {\n args: {\n attachments,\n deletedAttachments: [],\n onItemClick: console.info,\n },\n};\n\n/** Current and deleted collections. Open the Deleted tab to restore an attachment. */\nexport const WithDeletedAttachments: Story = {\n args: {\n attachments,\n deletedAttachments,\n onItemClick: console.info,\n },\n};\n\nexport const WithLongList: Story = {\n args: {\n attachments: attachmentsLongList,\n deletedAttachments: [],\n onItemClick: console.info,\n },\n};\n\nconst ControlledAttachments = (props: AttachmentsProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments ?? []);\n const [currentDeletedAttachments, setCurrentDeletedAttachments] = useState(\n props.deletedAttachments ?? [],\n );\n\n return (\n <Attachments\n {...props}\n attachments={currentAttachments}\n deletedAttachments={currentDeletedAttachments}\n onItemClick={console.info}\n onChange={(payload) => {\n setCurrentAttachments(payload.attachments);\n setCurrentDeletedAttachments(payload.deletedAttachments);\n props.onChange?.(payload);\n }}\n />\n );\n};\n\n/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */\nexport const Controlled: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n render: (args) => <ControlledAttachments {...args} />,\n};\n"],"mappings":"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","ignoreList":[]}
|