@payloadcms/ui 3.10.0 → 3.11.0

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.
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import type { DocumentDrawerProps } from '../../../DocumentDrawer/types.js';
3
3
  import './index.scss';
4
4
  export declare const DrawerLink: React.FC<{
5
+ readonly onDrawerDelete?: DocumentDrawerProps['onDelete'];
5
6
  readonly onDrawerSave?: DocumentDrawerProps['onSave'];
6
7
  }>;
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/RelationshipTable/cells/DrawerLink/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAM3E,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;CACtD,CA8BA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/RelationshipTable/cells/DrawerLink/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAM3E,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;CACtD,CAyCA,CAAA"}
@@ -9,8 +9,9 @@ import { DefaultCell } from '../../../Table/DefaultCell/index.js';
9
9
  import { useCellProps } from '../../../TableColumns/RenderDefaultCell/index.js';
10
10
  import './index.scss';
11
11
  export const DrawerLink = props => {
12
- const $ = _c(11);
12
+ const $ = _c(15);
13
13
  const {
14
+ onDrawerDelete: onDrawerDeleteFromProps,
14
15
  onDrawerSave: onDrawerSaveFromProps
15
16
  } = props;
16
17
  const cellProps = useCellProps();
@@ -48,8 +49,23 @@ export const DrawerLink = props => {
48
49
  }
49
50
  const onDrawerSave = t4;
50
51
  let t5;
51
- if ($[6] !== DocumentDrawer || $[7] !== DocumentDrawerToggler || $[8] !== cellProps || $[9] !== onDrawerSave) {
52
- t5 = _jsxs("div", {
52
+ if ($[6] !== closeDrawer || $[7] !== onDrawerDeleteFromProps) {
53
+ t5 = args_0 => {
54
+ closeDrawer();
55
+ if (typeof onDrawerDeleteFromProps === "function") {
56
+ onDrawerDeleteFromProps(args_0);
57
+ }
58
+ };
59
+ $[6] = closeDrawer;
60
+ $[7] = onDrawerDeleteFromProps;
61
+ $[8] = t5;
62
+ } else {
63
+ t5 = $[8];
64
+ }
65
+ const onDrawerDelete = t5;
66
+ let t6;
67
+ if ($[9] !== DocumentDrawer || $[10] !== DocumentDrawerToggler || $[11] !== cellProps || $[12] !== onDrawerDelete || $[13] !== onDrawerSave) {
68
+ t6 = _jsxs("div", {
53
69
  className: "drawer-link",
54
70
  children: [_jsx(DefaultCell, {
55
71
  ...cellProps,
@@ -59,17 +75,19 @@ export const DrawerLink = props => {
59
75
  }), _jsx(DocumentDrawerToggler, {
60
76
  children: _jsx(EditIcon, {})
61
77
  }), _jsx(DocumentDrawer, {
78
+ onDelete: onDrawerDelete,
62
79
  onSave: onDrawerSave
63
80
  })]
64
81
  });
65
- $[6] = DocumentDrawer;
66
- $[7] = DocumentDrawerToggler;
67
- $[8] = cellProps;
68
- $[9] = onDrawerSave;
69
- $[10] = t5;
82
+ $[9] = DocumentDrawer;
83
+ $[10] = DocumentDrawerToggler;
84
+ $[11] = cellProps;
85
+ $[12] = onDrawerDelete;
86
+ $[13] = onDrawerSave;
87
+ $[14] = t6;
70
88
  } else {
71
- t5 = $[10];
89
+ t6 = $[14];
72
90
  }
73
- return t5;
91
+ return t6;
74
92
  };
75
93
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","EditIcon","useDocumentDrawer","DefaultCell","useCellProps","DrawerLink","props","$","onDrawerSave","onDrawerSaveFromProps","cellProps","t0","rowData","id","t1","collectionConfig","slug","t2","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t3","closeDrawer","t4","args","t5","_jsxs","className","children","_jsx","link","onClick","onSave"],"sources":["../../../../../src/elements/RelationshipTable/cells/DrawerLink/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback } from 'react'\n\nimport type { DocumentDrawerProps } from '../../../DocumentDrawer/types.js'\n\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useDocumentDrawer } from '../../../DocumentDrawer/index.js'\nimport { DefaultCell } from '../../../Table/DefaultCell/index.js'\nimport { useCellProps } from '../../../TableColumns/RenderDefaultCell/index.js'\nimport './index.scss'\n\nexport const DrawerLink: React.FC<{\n readonly onDrawerSave?: DocumentDrawerProps['onSave']\n}> = (props) => {\n const { onDrawerSave: onDrawerSaveFromProps } = props\n\n const cellProps = useCellProps()\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n id: cellProps?.rowData.id,\n collectionSlug: cellProps?.collectionConfig.slug,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n\n if (typeof onDrawerSaveFromProps === 'function') {\n void onDrawerSaveFromProps(args)\n }\n },\n [closeDrawer, onDrawerSaveFromProps],\n )\n\n return (\n <div className=\"drawer-link\">\n <DefaultCell {...cellProps} className=\"drawer-link__cell\" link={false} onClick={null} />\n <DocumentDrawerToggler>\n <EditIcon />\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onDrawerSave} />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAInC,SAASC,QAAQ,QAAQ;AACzB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,WAAW,QAAQ;AAC5B,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,OAAO,MAAMC,UAAA,GAERC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACH;IAAAU,YAAA,EAAAC;EAAA,IAAgDH,KAAA;EAEhD,MAAAI,SAAA,GAAkBN,YAAA;EAGZ,MAAAO,EAAA,GAAAD,SAAA,EAAAE,OAAA,CAAAC,EAAA;EACY,MAAAC,EAAA,GAAAJ,SAAA,EAAAK,gBAAA,CAAAC,IAAA;EAA4B,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAI,EAAA,IAAAJ,CAAA,QAAAO,EAAA;IAFqCG,EAAA;MAAAJ,EAAA,EAC7EF,EAAmB;MAAAO,cAAA,EACPJ;IAA4B;IAC9CP,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAHA,OAAAY,cAAA,EAAAC,qBAAA,EAAAC,EAAA,IAAiEnB,iBAAA,CAAkBe,EAGnF;EAH8C;IAAAK;EAAA,IAAAD,EAAe;EAAA,IAAAE,EAAA;EAAA,IAAAhB,CAAA,QAAAe,WAAA,IAAAf,CAAA,QAAAE,qBAAA;IAM3Dc,EAAA,GAAAC,IAAA;MACEF,WAAA;MAAA,IAEI,OAAOb,qBAAA,KAA0B;QAC9BA,qBAAA,CAAsBe,IAAA;MAAA;IAAA;IAE/BjB,CAAA,MAAAe,WAAA;IAAAf,CAAA,MAAAE,qBAAA;IAAAF,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAPF,MAAAC,YAAA,GAAqBe,EAQiB;EAAA,IAAAE,EAAA;EAAA,IAAAlB,CAAA,QAAAY,cAAA,IAAAZ,CAAA,QAAAa,qBAAA,IAAAb,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAC,YAAA;IAIpCiB,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAc;MAAAC,QAAA,GACbC,IAAA,CAAA1B,WAAA;QAAA,GAAiBO,SAAS;QAAAiB,SAAA,EAAY;QAAAG,IAAA;QAAAC,OAAA;MAAA,C,GACtCF,IAAA,CAACT,qBAAA;QAAAQ,QAAA,EACCC,IAAA,CAAA5B,QAAA,IAAC;MAAA,C,GAEH4B,IAAA,CAACV,cAAA;QAAAa,MAAA,EAAuBxB;MAAA,C;;;;;;;;;;SAL1BiB,E;CAQJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","EditIcon","useDocumentDrawer","DefaultCell","useCellProps","DrawerLink","props","$","onDrawerDelete","onDrawerDeleteFromProps","onDrawerSave","onDrawerSaveFromProps","cellProps","t0","rowData","id","t1","collectionConfig","slug","t2","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t3","closeDrawer","t4","args","t5","args_0","t6","_jsxs","className","children","_jsx","link","onClick","onDelete","onSave"],"sources":["../../../../../src/elements/RelationshipTable/cells/DrawerLink/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback } from 'react'\n\nimport type { DocumentDrawerProps } from '../../../DocumentDrawer/types.js'\n\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useDocumentDrawer } from '../../../DocumentDrawer/index.js'\nimport { DefaultCell } from '../../../Table/DefaultCell/index.js'\nimport { useCellProps } from '../../../TableColumns/RenderDefaultCell/index.js'\nimport './index.scss'\n\nexport const DrawerLink: React.FC<{\n readonly onDrawerDelete?: DocumentDrawerProps['onDelete']\n readonly onDrawerSave?: DocumentDrawerProps['onSave']\n}> = (props) => {\n const { onDrawerDelete: onDrawerDeleteFromProps, onDrawerSave: onDrawerSaveFromProps } = props\n\n const cellProps = useCellProps()\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n id: cellProps?.rowData.id,\n collectionSlug: cellProps?.collectionConfig.slug,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n\n if (typeof onDrawerSaveFromProps === 'function') {\n void onDrawerSaveFromProps(args)\n }\n },\n [closeDrawer, onDrawerSaveFromProps],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n closeDrawer()\n\n if (typeof onDrawerDeleteFromProps === 'function') {\n void onDrawerDeleteFromProps(args)\n }\n },\n [closeDrawer, onDrawerDeleteFromProps],\n )\n\n return (\n <div className=\"drawer-link\">\n <DefaultCell {...cellProps} className=\"drawer-link__cell\" link={false} onClick={null} />\n <DocumentDrawerToggler>\n <EditIcon />\n </DocumentDrawerToggler>\n <DocumentDrawer onDelete={onDrawerDelete} onSave={onDrawerSave} />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAInC,SAASC,QAAQ,QAAQ;AACzB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,WAAW,QAAQ;AAC5B,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,OAAO,MAAMC,UAAA,GAGRC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACH;IAAAU,cAAA,EAAAC,uBAAA;IAAAC,YAAA,EAAAC;EAAA,IAAyFL,KAAA;EAEzF,MAAAM,SAAA,GAAkBR,YAAA;EAGZ,MAAAS,EAAA,GAAAD,SAAA,EAAAE,OAAA,CAAAC,EAAA;EACY,MAAAC,EAAA,GAAAJ,SAAA,EAAAK,gBAAA,CAAAC,IAAA;EAA4B,IAAAC,EAAA;EAAA,IAAAZ,CAAA,QAAAM,EAAA,IAAAN,CAAA,QAAAS,EAAA;IAFqCG,EAAA;MAAAJ,EAAA,EAC7EF,EAAmB;MAAAO,cAAA,EACPJ;IAA4B;IAC9CT,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAHA,OAAAc,cAAA,EAAAC,qBAAA,EAAAC,EAAA,IAAiErB,iBAAA,CAAkBiB,EAGnF;EAH8C;IAAAK;EAAA,IAAAD,EAAe;EAAA,IAAAE,EAAA;EAAA,IAAAlB,CAAA,QAAAiB,WAAA,IAAAjB,CAAA,QAAAI,qBAAA;IAM3Dc,EAAA,GAAAC,IAAA;MACEF,WAAA;MAAA,IAEI,OAAOb,qBAAA,KAA0B;QAC9BA,qBAAA,CAAsBe,IAAA;MAAA;IAAA;IAE/BnB,CAAA,MAAAiB,WAAA;IAAAjB,CAAA,MAAAI,qBAAA;IAAAJ,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAPF,MAAAG,YAAA,GAAqBe,EAQiB;EAAA,IAAAE,EAAA;EAAA,IAAApB,CAAA,QAAAiB,WAAA,IAAAjB,CAAA,QAAAE,uBAAA;IAIpCkB,EAAA,GAAAC,MAAA;MACEJ,WAAA;MAAA,IAEI,OAAOf,uBAAA,KAA4B;QAChCA,uBAAA,CAAwBiB,MAAA;MAAA;IAAA;IAEjCnB,CAAA,MAAAiB,WAAA;IAAAjB,CAAA,MAAAE,uBAAA;IAAAF,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAPF,MAAAC,cAAA,GAAuBmB,EAQiB;EAAA,IAAAE,EAAA;EAAA,IAAAtB,CAAA,QAAAc,cAAA,IAAAd,CAAA,SAAAe,qBAAA,IAAAf,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAC,cAAA,IAAAD,CAAA,SAAAG,YAAA;IAItCmB,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAc;MAAAC,QAAA,GACbC,IAAA,CAAA9B,WAAA;QAAA,GAAiBS,SAAS;QAAAmB,SAAA,EAAY;QAAAG,IAAA;QAAAC,OAAA;MAAA,C,GACtCF,IAAA,CAACX,qBAAA;QAAAU,QAAA,EACCC,IAAA,CAAAhC,QAAA,IAAC;MAAA,C,GAEHgC,IAAA,CAACZ,cAAA;QAAAe,QAAA,EAAyB5B,cAAA;QAAA6B,MAAA,EAAwB3B;MAAA,C;;;;;;;;;;;SALpDmB,E;CAQJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,aAAa,EACb,KAAK,EACN,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAMrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAkPvE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,aAAa,EACb,KAAK,EACN,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAMrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA4PvE,CAAA"}
@@ -134,6 +134,10 @@ export const RelationshipTable = props => {
134
134
  closeDrawer();
135
135
  void onDrawerSave(args_0);
136
136
  }, [closeDrawer, onDrawerSave]);
137
+ const onDrawerDelete = useCallback(args_1 => {
138
+ const newDocs_0 = data.docs.filter(doc_1 => doc_1.id !== args_1.id);
139
+ void renderTable(newDocs_0);
140
+ }, [data.docs, renderTable]);
137
141
  const preferenceKey = `${relationTo}-list`;
138
142
  const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create;
139
143
  return /*#__PURE__*/_jsxs("div", {
@@ -185,6 +189,7 @@ export const RelationshipTable = props => {
185
189
  columnState: columnState,
186
190
  docs: data.docs,
187
191
  LinkedCellOverride: /*#__PURE__*/_jsx(DrawerLink, {
192
+ onDrawerDelete: onDrawerDelete,
188
193
  onDrawerSave: onDrawerSave
189
194
  }),
190
195
  preferenceKey: preferenceKey,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","Table","setTable","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","limit","String","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","undefined","newData","state","newColumnState","NewTable","columns","enableRowSelections","renderRowTypes","tableAppearance","DocumentDrawer","DocumentDrawerToggler","closeDrawer","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","newDocs","onDrawerCreate","preferenceKey","canCreate","collections","create","_jsxs","className","_jsx","icon","direction","onClick","pillStyle","length","label","labels","plural","singular","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","slug","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport './index.scss'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n limit: String(field.defaultLimit || collectionConfig.admin.pagination.defaultLimit),\n sort: field.defaultSort || collectionConfig.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to ColumnPreferences\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: defaultColumns,\n docs,\n enableRowSelections: false,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n collectionConfig.admin.pagination.defaultLimit,\n collectionConfig.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n ],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\n )}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n collectionSlug={relationTo}\n data={data}\n defaultLimit={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={<DrawerLink onDrawerSave={onDrawerSave} />}\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AASA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ,QAAQ;AAKvD,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AACrB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,QAAQ;AACrC,OAAO;AACP,SAASC,UAAU,QAAQ;AAC3B,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,SAAA,GAAY;AAelB,OAAO,MAAMC,iBAAA,GAAgEC,KAAA;EAC3E,MAAM;IACJC,UAAU;IACVC,WAAA,GAAc,IAAI;IAClBC,WAAW;IACXC,YAAA,GAAe,KAAK;IACpBC,KAAK;IACLC,aAAa;IACbC,WAAA,EAAaC,oBAAoB;IACjCC,iBAAiB;IACjBC,KAAK;IACLC;EAAU,CACX,GAAGX,KAAA;EACJ,MAAM,CAACY,KAAA,EAAOC,QAAA,CAAS,GAAGjC,QAAA,CAA0B;EACpD,MAAM;IAAEkC;EAAe,CAAE,GAAG5B,SAAA;EAE5B,MAAM;IAAE6B;EAAW,CAAE,GAAG9B,OAAA;EAExB,MAAM,CAACsB,WAAA,CAAY,GAAG3B,QAAA,CAAwB;IAC5C,IAAI4B,oBAAA,EAAsB;MACxB,OAAO;QACL,GAAGA,oBAAoB;QACvBQ,IAAA,EAAMC,KAAA,CAAMC,OAAO,CAACV,oBAAA,CAAqBQ,IAAI,IACzCR,oBAAA,CAAqBQ,IAAI,CAACG,MAAM,CAAC,CAACC,GAAA,EAAKC,GAAA;UACrC,IAAI,OAAOA,GAAA,KAAQ,UAAU;YAC3B,OAAO,C,GACFD,GAAA,EACH;cACEE,EAAA,EAAID;YACN,EACD;UACH;UACA,OAAO,C,GAAID,GAAA,EAAKC,GAAA,CAAI;QACtB,GAAG,EAAE,IACL;MACN;IACF;EACF;EAEA,MAAM;IAAEE,IAAI;IAAEC;EAAC,CAAE,GAAGnC,cAAA;EAEpB,MAAM,CAACoC,KAAA,EAAOC,QAAA,CAAS,GAAG9C,QAAA;EAC1B,MAAM,CAAC+C,kBAAA,EAAoBC,qBAAA,CAAsB,GAAGhD,QAAA,CAAS;EAE7D,MAAM,CAACiD,gBAAA,CAAiB,GAAGjD,QAAA,CACzB,MAAMkC,eAAA,CAAgB;IAAEgB,cAAA,EAAgBnB;EAAW;EAGrD,MAAM,CAACoB,cAAA,EAAgBC,iBAAA,CAAkB,GAAGpD,QAAA,CAAS,CAACwB,YAAA;EACtD,MAAM,CAAC6B,IAAA,EAAMC,OAAA,CAAQ,GAAGtD,QAAA,CAAwB2B,WAAA;EAChD,MAAM,CAAC4B,WAAA,EAAaC,cAAA,CAAe,GAAGxD,QAAA;EAEtC,MAAM;IAAEyD;EAAa,CAAE,GAAGjD,kBAAA;EAE1B,MAAMkD,WAAA,GAAc3D,WAAA,CAClB,MAAOqC,IAAA;IACL,MAAMuB,QAAA,GAAsB;MAC1BC,KAAA,EAAOC,MAAA,CAAOpC,KAAA,CAAMqC,YAAY,IAAIb,gBAAA,CAAiBc,KAAK,CAACC,UAAU,CAACF,YAAY;MAClFG,IAAA,EAAMxC,KAAA,CAAMyC,WAAW,IAAIjB,gBAAA,CAAiBiB,WAAW;MACvD,IAAIrB,KAAA,IAAS,CAAC,CAAC;MACfsB,KAAA,EAAO;QAAE,IAAItB,KAAA,EAAOsB,KAAA,IAAS,CAAC,CAAC;MAAE;IACnC;IAEA,IAAIzC,aAAA,EAAe;MACjBiC,QAAA,CAASQ,KAAK,GAAGzD,qBAAA,CAAsBiD,QAAA,CAASQ,KAAK,EAAEzC,aAAA;IACzD;IAEA;IACA,MAAM0C,cAAA,GAAiB3C,KAAA,CAAMsC,KAAK,CAACK,cAAc,GAC7C3C,KAAA,CAAMsC,KAAK,CAACK,cAAc,CAACC,GAAG,CAAEC,QAAA,KAAc;MAC5CA,QAAA;MACAC,MAAA,EAAQ;IACV,MACAC,SAAA;IAEJ,MAAM;MACJnB,IAAA,EAAMoB,OAAO;MACbC,KAAA,EAAOC,cAAc;MACrB3C,KAAA,EAAO4C;IAAQ,CAChB,GAAG,MAAMnB,aAAA,CAAc;MACtBP,cAAA,EAAgBnB,UAAA;MAChB8C,OAAA,EAAST,cAAA;MACThC,IAAA;MACA0C,mBAAA,EAAqB;MACrBjC,KAAA,EAAOc,QAAA;MACPoB,cAAA,EAAgB;MAChBC,eAAA,EAAiB;IACnB;IAEA1B,OAAA,CAAQmB,OAAA;IACRxC,QAAA,CAAS2C,QAAA;IACTpB,cAAA,CAAemB,cAAA;IACfvB,iBAAA,CAAkB;EACpB,GACA,CACE3B,KAAA,CAAMqC,YAAY,EAClBrC,KAAA,CAAMyC,WAAW,EACjBzC,KAAA,CAAMsC,KAAK,CAACK,cAAc,EAC1BnB,gBAAA,CAAiBc,KAAK,CAACC,UAAU,CAACF,YAAY,EAC9Cb,gBAAA,CAAiBiB,WAAW,EAC5BrB,KAAA,EACAnB,aAAA,EACA+B,aAAA,EACA1B,UAAA,CACD;EAGH5B,gBAAA,CACE;IACE,IAAI,CAACqB,YAAA,KAAiB,CAACQ,KAAA,IAASa,KAAI,GAAI;MACtC,KAAKa,WAAA;IACP;EACF,GACA,CAACb,KAAA,EAAOrB,YAAA,CAAa,EACrB,CAACQ,KAAA,EAAO0B,WAAA,CAAY;EAGtB,MAAM,CAACuB,cAAA,EAAgBC,qBAAA,EAAuB;IAAEC,WAAW;IAAEC;EAAU,CAAE,CAAC,GAAGvE,iBAAA,CAAkB;IAC7FqC,cAAA,EAAgBnB;EAClB;EAEA,MAAMsD,YAAA,GAAetF,WAAA,CAClBuF,IAAA;IACC,MAAMC,aAAA,GAAgBlC,IAAA,EAAMjB,IAAA,EAAMoD,SAAA,CAAW/C,KAAA,IAAQA,KAAA,CAAIC,EAAE,KAAK4C,IAAA,CAAK7C,GAAG,CAACC,EAAE;IAC3E,IAAI+C,mBAAA,GAA6CjB,SAAA;IAEjD,IAAIe,aAAA,KAAkB,CAAC,GAAG;MACxB,MAAMG,OAAA,GAAU,C,GAAIrC,IAAA,CAAKjB,IAAI,CAAC;MAC9BsD,OAAO,CAACH,aAAA,CAAc,GAAGD,IAAA,CAAK7C,GAAG;MACjCgD,mBAAA,GAAsBC,OAAA;IACxB,OAAO;MACLD,mBAAA,GAAsB,CAACH,IAAA,CAAK7C,GAAG,E,GAAKY,IAAA,CAAKjB,IAAI,CAAC;IAChD;IAEA,KAAKsB,WAAA,CAAY+B,mBAAA;EACnB,GACA,CAACpC,IAAA,CAAKjB,IAAI,EAAEsB,WAAA,CAAY;EAG1B,MAAMiC,cAAA,GAAiB5F,WAAA,CACpBuF,MAAA;IACCH,WAAA;IACA,KAAKE,YAAA,CAAaC,MAAA;EACpB,GACA,CAACH,WAAA,EAAaE,YAAA,CAAa;EAG7B,MAAMO,aAAA,GAAgB,GAAG7D,UAAA,OAAiB;EAE1C,MAAM8D,SAAA,GAAYvE,WAAA,KAAgB,SAASa,WAAA,EAAa2D,WAAA,GAAc/D,UAAA,CAAW,EAAEgE,MAAA;EAEnF,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAW/E,SAAA;4BACd8E,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAG/E,SAAA,UAAmB;iBACnCY,KAAA,E,aACDkE,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAG/E,SAAA,WAAoB;mBACpC2E,SAAA,iBACCK,IAAA,CAAChB,qBAAA;UAAsBe,SAAA,EAAW,GAAG/E,SAAA,WAAoB;oBACtDyB,IAAA,CAAKC,CAAC,CAAC;yBAGZsD,IAAA,CAAChG,IAAA;UACC,iBAAe,GAAGgB,SAAA,UAAmB;UACrC,iBAAe6B,kBAAA;UACfkD,SAAA,EAAW,GAAG/E,SAAA,oBACZ6B,kBAAA,GAAqB,GAAG7B,SAAA,kBAA2B,GAAG,IACtD;UACFiF,IAAA,eAAMD,IAAA,CAAC9F,WAAA;YAAYgG,SAAA,EAAWrD,kBAAA,GAAqB,OAAO;;UAC1DsD,OAAA,EAASA,CAAA,KAAMrD,qBAAA,CAAsB,CAACD,kBAAA;UACtCuD,SAAA,EAAU;oBAET1D,CAAA,CAAE;;;QAIRrB,WAAA,EACA4B,cAAA,gBACC+C,IAAA,CAAC;gBAAGtD,CAAA,CAAE;sBAENoD,KAAA,CAAClG,QAAA;iBACEuD,IAAA,CAAKjB,IAAI,IAAIiB,IAAA,CAAKjB,IAAI,CAACmE,MAAM,KAAK,kBACjCP,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAG/E,SAAA,cAAuB;gCACxCgF,IAAA,CAAC;oBACEvD,IAAA,CAAKC,CAAC,CAAC,qBAAqB;YAC3B4D,KAAA,EAAO5G,cAAA,CAAeqD,gBAAA,EAAkBwD,MAAA,EAAQC,MAAA,EAAQ/D,IAAA;UAC1D;YAEDkD,SAAA,iBACCK,IAAA,CAACjG,MAAA;UAAOoG,OAAA,EAASjB,UAAA;oBACdzC,IAAA,CAAKC,CAAC,CAAC,0BAA0B;YAChC4D,KAAA,EAAO5G,cAAA,CAAeqD,gBAAA,EAAkBwD,MAAA,EAAQE,QAAA,EAAUhE,IAAA;UAC5D;;UAKPU,IAAA,CAAKjB,IAAI,IAAIiB,IAAA,CAAKjB,IAAI,CAACmE,MAAM,GAAG,kBAC/BL,IAAA,CAACpF,oBAAA;kBACC,aAAAoF,IAAA,CAAC3F,iBAAA;UACC2C,cAAA,EAAgBnB,UAAA;UAChBsB,IAAA,EAAMA,IAAA;UACNS,YAAA,EACErC,KAAA,CAAMqC,YAAY,IAAIb,gBAAA,EAAkBc,KAAA,EAAOC,UAAA,EAAYF,YAAA;UAE7D8C,kBAAA,EAAoB;UACpBC,aAAA,EAAe/D,QAAA;UACf8C,aAAA,EAAeA,aAAA;oBAEf,aAAAI,KAAA,CAACjF,oBAAA;YACCmC,cAAA,EAAgBnB,UAAA;YAChBwB,WAAA,EAAaA,WAAA;YACbnB,IAAA,EAAMiB,IAAA,CAAKjB,IAAI;YACf0E,kBAAA,eAAoBZ,IAAA,CAAClF,UAAA;cAAWqE,YAAA,EAAcA;;YAC9CO,aAAA,EAAeA,aAAA;YACfb,cAAc;YACd9C,QAAA,EAAUA,QAAA;YACV8E,eAAA,EAAiB;cACfC,UAAA,EAAY;YACd;YACAhC,eAAA,EAAgB;oCAEhBkB,IAAA,CAACvF,aAAA;cACCsF,SAAA,EAAW,GAAG/E,SAAA,WAAoB;cAClC+F,MAAA,EAAQlE,kBAAA,GAAqB,SAAS;cACtCL,EAAA,EAAI,GAAGxB,SAAA,UAAmB;wBAE1B,aAAAgF,IAAA,CAAC;gBAAID,SAAA,EAAW,GAAG/E,SAAA,iBAA0B;0BAC3C,aAAAgF,IAAA,CAACtF,cAAA;kBAAesC,cAAA,EAAgBD,gBAAA,CAAiBiE;;;gBAGpDlF,KAAA,E,aACDkE,IAAA,CAACjF,2BAAA;;;;QAOZI,UAAA,E,aACD6E,IAAA,CAACjB,cAAA;MAAetD,WAAA,EAAaE,iBAAA;MAAmBsF,MAAA,EAAQxB;;;AAG9D","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","Table","setTable","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","limit","String","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","undefined","newData","state","newColumnState","NewTable","columns","enableRowSelections","renderRowTypes","tableAppearance","DocumentDrawer","DocumentDrawerToggler","closeDrawer","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","newDocs","onDrawerCreate","onDrawerDelete","filter","preferenceKey","canCreate","collections","create","_jsxs","className","_jsx","icon","direction","onClick","pillStyle","length","label","labels","plural","singular","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","slug","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport './index.scss'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n limit: String(field.defaultLimit || collectionConfig.admin.pagination.defaultLimit),\n sort: field.defaultSort || collectionConfig.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to ColumnPreferences\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: defaultColumns,\n docs,\n enableRowSelections: false,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n collectionConfig.admin.pagination.defaultLimit,\n collectionConfig.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n ],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n void renderTable(newDocs)\n },\n [data.docs, renderTable],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\n )}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n collectionSlug={relationTo}\n data={data}\n defaultLimit={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={\n <DrawerLink onDrawerDelete={onDrawerDelete} onDrawerSave={onDrawerSave} />\n }\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAUpD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAuN1B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EA6N1B,CAAA"}
@@ -8,14 +8,16 @@ import { toast } from 'sonner';
8
8
  import { useForm } from '../../forms/Form/context.js';
9
9
  import { useConfig } from '../../providers/Config/index.js';
10
10
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
11
+ import { useEditDepth } from '../../providers/EditDepth/index.js';
11
12
  import { useLocale } from '../../providers/Locale/index.js';
12
13
  import { useTranslation } from '../../providers/Translation/index.js';
13
14
  import { requests } from '../../utilities/api.js';
14
15
  import { Button } from '../Button/index.js';
16
+ import { drawerZBase } from '../Drawer/index.js';
15
17
  import './index.scss';
16
18
  const baseClass = 'status';
17
19
  export const Status = () => {
18
- const $ = _c(40);
20
+ const $ = _c(42);
19
21
  const {
20
22
  id,
21
23
  collectionSlug,
@@ -49,6 +51,7 @@ export const Status = () => {
49
51
  i18n,
50
52
  t
51
53
  } = useTranslation();
54
+ const editDepth = useEditDepth();
52
55
  const unPublishModalSlug = `confirm-un-publish-${id}`;
53
56
  const revertModalSlug = `confirm-revert-${id}`;
54
57
  let statusToRender;
@@ -145,9 +148,9 @@ export const Status = () => {
145
148
  if (statusToRender) {
146
149
  const t3 = `${t("version:status")}: ${t(`version:${statusToRender}`)}`;
147
150
  let t4;
148
- if ($[14] !== canUpdate || $[15] !== performAction || $[16] !== processing || $[17] !== revertModalSlug || $[18] !== statusToRender || $[19] !== t || $[20] !== t3 || $[21] !== toggleModal || $[22] !== unPublishModalSlug) {
151
+ if ($[14] !== canUpdate || $[15] !== editDepth || $[16] !== performAction || $[17] !== processing || $[18] !== revertModalSlug || $[19] !== statusToRender || $[20] !== t || $[21] !== t3 || $[22] !== toggleModal || $[23] !== unPublishModalSlug) {
149
152
  let t5;
150
- if ($[24] !== canUpdate || $[25] !== performAction || $[26] !== processing || $[27] !== statusToRender || $[28] !== t || $[29] !== toggleModal || $[30] !== unPublishModalSlug) {
153
+ if ($[25] !== canUpdate || $[26] !== editDepth || $[27] !== performAction || $[28] !== processing || $[29] !== statusToRender || $[30] !== t || $[31] !== toggleModal || $[32] !== unPublishModalSlug) {
151
154
  t5 = canUpdate && statusToRender === "published" && _jsxs(React.Fragment, {
152
155
  children: ["\xA0\u2014\xA0", _jsx(Button, {
153
156
  buttonStyle: "none",
@@ -157,6 +160,9 @@ export const Status = () => {
157
160
  }), _jsx(Modal, {
158
161
  className: `${baseClass}__modal`,
159
162
  slug: unPublishModalSlug,
163
+ style: {
164
+ zIndex: drawerZBase + editDepth
165
+ },
160
166
  children: _jsxs("div", {
161
167
  className: `${baseClass}__wrapper`,
162
168
  children: [_jsxs("div", {
@@ -183,19 +189,20 @@ export const Status = () => {
183
189
  })
184
190
  })]
185
191
  });
186
- $[24] = canUpdate;
187
- $[25] = performAction;
188
- $[26] = processing;
189
- $[27] = statusToRender;
190
- $[28] = t;
191
- $[29] = toggleModal;
192
- $[30] = unPublishModalSlug;
193
- $[31] = t5;
192
+ $[25] = canUpdate;
193
+ $[26] = editDepth;
194
+ $[27] = performAction;
195
+ $[28] = processing;
196
+ $[29] = statusToRender;
197
+ $[30] = t;
198
+ $[31] = toggleModal;
199
+ $[32] = unPublishModalSlug;
200
+ $[33] = t5;
194
201
  } else {
195
- t5 = $[31];
202
+ t5 = $[33];
196
203
  }
197
204
  let t6;
198
- if ($[32] !== canUpdate || $[33] !== performAction || $[34] !== processing || $[35] !== revertModalSlug || $[36] !== statusToRender || $[37] !== t || $[38] !== toggleModal) {
205
+ if ($[34] !== canUpdate || $[35] !== performAction || $[36] !== processing || $[37] !== revertModalSlug || $[38] !== statusToRender || $[39] !== t || $[40] !== toggleModal) {
199
206
  t6 = canUpdate && statusToRender === "changed" && _jsxs(React.Fragment, {
200
207
  children: ["\xA0\u2014\xA0", _jsx(Button, {
201
208
  buttonStyle: "none",
@@ -233,16 +240,16 @@ export const Status = () => {
233
240
  })
234
241
  })]
235
242
  });
236
- $[32] = canUpdate;
237
- $[33] = performAction;
238
- $[34] = processing;
239
- $[35] = revertModalSlug;
240
- $[36] = statusToRender;
241
- $[37] = t;
242
- $[38] = toggleModal;
243
- $[39] = t6;
243
+ $[34] = canUpdate;
244
+ $[35] = performAction;
245
+ $[36] = processing;
246
+ $[37] = revertModalSlug;
247
+ $[38] = statusToRender;
248
+ $[39] = t;
249
+ $[40] = toggleModal;
250
+ $[41] = t6;
244
251
  } else {
245
- t6 = $[39];
252
+ t6 = $[41];
246
253
  }
247
254
  t4 = _jsx("div", {
248
255
  className: baseClass,
@@ -259,17 +266,18 @@ export const Status = () => {
259
266
  })
260
267
  });
261
268
  $[14] = canUpdate;
262
- $[15] = performAction;
263
- $[16] = processing;
264
- $[17] = revertModalSlug;
265
- $[18] = statusToRender;
266
- $[19] = t;
267
- $[20] = t3;
268
- $[21] = toggleModal;
269
- $[22] = unPublishModalSlug;
270
- $[23] = t4;
269
+ $[15] = editDepth;
270
+ $[16] = performAction;
271
+ $[17] = processing;
272
+ $[18] = revertModalSlug;
273
+ $[19] = statusToRender;
274
+ $[20] = t;
275
+ $[21] = t3;
276
+ $[22] = toggleModal;
277
+ $[23] = unPublishModalSlug;
278
+ $[24] = t4;
271
279
  } else {
272
- t4 = $[23];
280
+ t4 = $[24];
273
281
  }
274
282
  return t4;
275
283
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","baseClass","Status","$","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","unpublishedVersionCount","toggleModal","config","t0","routes","t1","serverURL","api","processing","setProcessing","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","t2","language","action","url","method","body","publishedDoc","get","headers","then","_temp","res_0","JSON","stringify","res","status","data","json","result","doc","success","message","error","performAction","canUpdate","update","t3","t4","t5","_jsxs","Fragment","children","_jsx","buttonStyle","className","onClick","slug","undefined","size","type","t6","title"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const [processing, setProcessing] = useState(false)\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n setProcessing(true)\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n\n incrementVersionCount()\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n\n setProcessing(false)\n if (action === 'revert') {\n toggleModal(revertModalSlug)\n }\n\n if (action === 'unpublish') {\n toggleModal(unPublishModalSlug)\n }\n },\n [\n api,\n collectionSlug,\n incrementVersionCount,\n globalSlug,\n i18n.language,\n id,\n locale,\n resetForm,\n revertModalSlug,\n serverURL,\n t,\n toggleModal,\n unPublishModalSlug,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={unPublishModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublish')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(unPublishModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n onClick={processing ? undefined : () => performAction('unpublish')}\n size=\"large\"\n >\n {t(processing ? 'version:unpublishing' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={revertModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmRevertToSaved')}</h1>\n <p>{t('version:aboutToRevertToPublished')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(revertModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"action-revert-to-published-confirm\"\n onClick={processing ? undefined : () => performAction('revert')}\n size=\"large\"\n >\n {t(processing ? 'version:reverting' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useEditDepth","useLocale","useTranslation","requests","Button","drawerZBase","baseClass","Status","$","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","unpublishedVersionCount","toggleModal","config","t0","routes","t1","serverURL","api","processing","setProcessing","reset","resetForm","code","locale","i18n","t","editDepth","unPublishModalSlug","revertModalSlug","statusToRender","t2","language","action","url","method","body","publishedDoc","get","headers","then","_temp","res_0","JSON","stringify","res","status","data","json","result","doc","success","message","error","performAction","canUpdate","update","t3","t4","t5","_jsxs","Fragment","children","_jsx","buttonStyle","className","onClick","slug","style","zIndex","undefined","size","type","t6","title"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const [processing, setProcessing] = useState(false)\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n setProcessing(true)\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n\n incrementVersionCount()\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n\n setProcessing(false)\n if (action === 'revert') {\n toggleModal(revertModalSlug)\n }\n\n if (action === 'unpublish') {\n toggleModal(unPublishModalSlug)\n }\n },\n [\n api,\n collectionSlug,\n incrementVersionCount,\n globalSlug,\n i18n.language,\n id,\n locale,\n resetForm,\n revertModalSlug,\n serverURL,\n t,\n toggleModal,\n unPublishModalSlug,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <Modal\n className={`${baseClass}__modal`}\n slug={unPublishModalSlug}\n style={{ zIndex: drawerZBase + editDepth }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublish')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(unPublishModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n onClick={processing ? undefined : () => performAction('unpublish')}\n size=\"large\"\n >\n {t(processing ? 'version:unpublishing' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={revertModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmRevertToSaved')}</h1>\n <p>{t('version:aboutToRevertToPublished')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(revertModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"action-revert-to-published-confirm\"\n onClick={processing ? undefined : () => performAction('revert')}\n size=\"large\"\n >\n {t(processing ? 'version:reverting' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}