@sanity/orderable-document-list 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Document.js CHANGED
@@ -50,23 +50,13 @@ function Document(_ref) {
50
50
  }
51
51
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
52
52
  fontSize: 4
53
- }, /*#__PURE__*/_react.default.createElement(_icons.DragHandleIcon, null))), /*#__PURE__*/_react.default.createElement(_ui.Button, {
54
- style: {
55
- width: "100%"
56
- },
57
- padding: 2,
58
- mode: "bleed",
59
- onClick: e => handleSelect(doc._id, index, e.nativeEvent)
60
- }, /*#__PURE__*/_react.default.createElement(_ui.Flex, {
61
- flex: 1,
62
- align: "center"
63
- }, showIncrements && /*#__PURE__*/_react.default.createElement(_ui.Flex, {
53
+ }, /*#__PURE__*/_react.default.createElement(_icons.DragHandleIcon, null))), showIncrements && /*#__PURE__*/_react.default.createElement(_ui.Flex, {
64
54
  style: {
65
55
  flexShrink: 0
66
56
  },
67
57
  align: "center",
68
58
  gap: 1,
69
- paddingRight: 2
59
+ paddingRight: 1
70
60
  }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
71
61
  padding: 2,
72
62
  mode: "ghost",
@@ -79,7 +69,17 @@ function Document(_ref) {
79
69
  disabled: isLast,
80
70
  onClick: () => increment(index, index + 1, doc._id, entities),
81
71
  icon: _icons.ChevronDownIcon
82
- })), /*#__PURE__*/_react.default.createElement(_ui.Box, {
72
+ })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
73
+ style: {
74
+ width: "100%"
75
+ },
76
+ padding: 2,
77
+ mode: "bleed",
78
+ onClick: e => handleSelect(doc._id, index, e.nativeEvent)
79
+ }, /*#__PURE__*/_react.default.createElement(_ui.Flex, {
80
+ flex: 1,
81
+ align: "center"
82
+ }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
83
83
  flex: 1
84
84
  }, /*#__PURE__*/_react.default.createElement(_preview.default, {
85
85
  value: doc,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Document.js"],"names":["Document","doc","increment","entities","handleSelect","index","isFirst","isLast","OrderableContext","showIncrements","flexShrink","width","e","_id","nativeEvent","ChevronUpIcon","ChevronDownIcon","schema","get","_type","startsWith","propTypes","PropTypes","shape","string","isRequired","arrayOf","func","number","bool","ChildEditLink","id","children","router","ChildLink","routerPanesState","isOpen","some","pane","replace","Link","linkProps","node"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types'\n// eslint-disable-next-line no-unused-vars\nimport React, {useCallback, useContext, useMemo} from 'react'\nimport {\n DragHandleIcon,\n ChevronUpIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n EditIcon,\n} from '@sanity/icons'\nimport {Text, Flex, Box, Button} from '@sanity/ui'\nimport {usePaneRouter} from '@sanity/desk-tool'\nimport Preview from 'part:@sanity/base/preview'\nimport schema from 'part:@sanity/base/schema'\n\nimport {OrderableContext} from './OrderableContext'\n\nexport default function Document({doc, increment, entities, handleSelect, index, isFirst, isLast}) {\n const {showIncrements} = useContext(OrderableContext)\n\n return (\n <Flex align=\"center\">\n <Box paddingX={3} style={{flexShrink: 0}}>\n <Text fontSize={4}>\n <DragHandleIcon />\n </Text>\n </Box>\n <Button\n style={{width: `100%`}}\n padding={2}\n mode=\"bleed\"\n onClick={(e) => handleSelect(doc._id, index, e.nativeEvent)}\n >\n <Flex flex={1} align=\"center\">\n {showIncrements && (\n <Flex style={{flexShrink: 0}} align=\"center\" gap={1} paddingRight={2}>\n <Button\n padding={2}\n mode=\"ghost\"\n onClick={() => increment(index, index + -1, doc._id, entities)}\n disabled={isFirst}\n icon={ChevronUpIcon}\n />\n <Button\n padding={2}\n mode=\"ghost\"\n disabled={isLast}\n onClick={() => increment(index, index + 1, doc._id, entities)}\n icon={ChevronDownIcon}\n />\n </Flex>\n )}\n <Box flex={1}>\n <Preview value={doc} type={schema.get(doc._type)} />\n </Box>\n </Flex>\n </Button>\n <Box paddingX={3} style={{flexShrink: 0}}>\n <ChildEditLink id={doc._id}>\n <Text fontSize={4}>\n {doc._id.startsWith(`drafts.`) ? <EditIcon /> : <ChevronRightIcon />}\n </Text>\n </ChildEditLink>\n </Box>\n </Flex>\n )\n}\n\nDocument.propTypes = {\n doc: PropTypes.shape({\n _id: PropTypes.string,\n _type: PropTypes.string,\n }).isRequired,\n entities: PropTypes.arrayOf(\n PropTypes.shape({\n _id: PropTypes.string,\n }).isRequired\n ).isRequired,\n handleSelect: PropTypes.func.isRequired,\n increment: PropTypes.func.isRequired,\n index: PropTypes.number.isRequired,\n isFirst: PropTypes.bool.isRequired,\n isLast: PropTypes.bool.isRequired,\n}\n\nconst ChildEditLink = ({id, children}) => {\n const router = usePaneRouter()\n const {ChildLink, routerPanesState} = router\n\n // Is this document currently being edited\n const isOpen = useMemo(\n () => routerPanesState.some((pane) => pane[0]?.id === id.replace(`drafts.`, ``)),\n [id, routerPanesState]\n )\n\n const Link = useCallback(\n (linkProps) => <ChildLink {...linkProps} childId={id.replace(`drafts.`, ``)} />,\n [ChildLink, id]\n )\n\n return (\n <Button\n as={Link}\n mode={isOpen ? `default` : `ghost`}\n tone={isOpen ? `primary` : `transparent`}\n padding={2}\n >\n {children}\n </Button>\n )\n}\n\nChildEditLink.propTypes = {\n id: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n}\n"],"file":"Document.js"}
1
+ {"version":3,"sources":["../src/Document.js"],"names":["Document","doc","increment","entities","handleSelect","index","isFirst","isLast","OrderableContext","showIncrements","flexShrink","_id","ChevronUpIcon","ChevronDownIcon","width","e","nativeEvent","schema","get","_type","startsWith","propTypes","PropTypes","shape","string","isRequired","arrayOf","func","number","bool","ChildEditLink","id","children","router","ChildLink","routerPanesState","isOpen","some","pane","replace","Link","linkProps","node"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types'\n// eslint-disable-next-line no-unused-vars\nimport React, {useCallback, useContext, useMemo} from 'react'\nimport {\n DragHandleIcon,\n ChevronUpIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n EditIcon,\n} from '@sanity/icons'\nimport {Text, Flex, Box, Button} from '@sanity/ui'\nimport {usePaneRouter} from '@sanity/desk-tool'\nimport Preview from 'part:@sanity/base/preview'\nimport schema from 'part:@sanity/base/schema'\n\nimport {OrderableContext} from './OrderableContext'\n\nexport default function Document({doc, increment, entities, handleSelect, index, isFirst, isLast}) {\n const {showIncrements} = useContext(OrderableContext)\n\n return (\n <Flex align=\"center\">\n <Box paddingX={3} style={{flexShrink: 0}}>\n <Text fontSize={4}>\n <DragHandleIcon />\n </Text>\n </Box>\n {showIncrements && (\n <Flex style={{flexShrink: 0}} align=\"center\" gap={1} paddingRight={1}>\n <Button\n padding={2}\n mode=\"ghost\"\n onClick={() => increment(index, index + -1, doc._id, entities)}\n disabled={isFirst}\n icon={ChevronUpIcon}\n />\n <Button\n padding={2}\n mode=\"ghost\"\n disabled={isLast}\n onClick={() => increment(index, index + 1, doc._id, entities)}\n icon={ChevronDownIcon}\n />\n </Flex>\n )}\n <Button\n style={{width: `100%`}}\n padding={2}\n mode=\"bleed\"\n onClick={(e) => handleSelect(doc._id, index, e.nativeEvent)}\n >\n <Flex flex={1} align=\"center\">\n <Box flex={1}>\n <Preview value={doc} type={schema.get(doc._type)} />\n </Box>\n </Flex>\n </Button>\n <Box paddingX={3} style={{flexShrink: 0}}>\n <ChildEditLink id={doc._id}>\n <Text fontSize={4}>\n {doc._id.startsWith(`drafts.`) ? <EditIcon /> : <ChevronRightIcon />}\n </Text>\n </ChildEditLink>\n </Box>\n </Flex>\n )\n}\n\nDocument.propTypes = {\n doc: PropTypes.shape({\n _id: PropTypes.string,\n _type: PropTypes.string,\n }).isRequired,\n entities: PropTypes.arrayOf(\n PropTypes.shape({\n _id: PropTypes.string,\n }).isRequired\n ).isRequired,\n handleSelect: PropTypes.func.isRequired,\n increment: PropTypes.func.isRequired,\n index: PropTypes.number.isRequired,\n isFirst: PropTypes.bool.isRequired,\n isLast: PropTypes.bool.isRequired,\n}\n\nconst ChildEditLink = ({id, children}) => {\n const router = usePaneRouter()\n const {ChildLink, routerPanesState} = router\n\n // Is this document currently being edited\n const isOpen = useMemo(\n () => routerPanesState.some((pane) => pane[0]?.id === id.replace(`drafts.`, ``)),\n [id, routerPanesState]\n )\n\n const Link = useCallback(\n (linkProps) => <ChildLink {...linkProps} childId={id.replace(`drafts.`, ``)} />,\n [ChildLink, id]\n )\n\n return (\n <Button\n as={Link}\n mode={isOpen ? `default` : `ghost`}\n tone={isOpen ? `primary` : `transparent`}\n padding={2}\n >\n {children}\n </Button>\n )\n}\n\nChildEditLink.propTypes = {\n id: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n}\n"],"file":"Document.js"}
@@ -13,8 +13,6 @@ var _client = _interopRequireDefault(require("part:@sanity/base/client"));
13
13
 
14
14
  var _ui = require("@sanity/ui");
15
15
 
16
- var _deskTool = require("@sanity/desk-tool");
17
-
18
16
  var _DraggableList = _interopRequireDefault(require("./DraggableList"));
19
17
 
20
18
  var _constants = require("./helpers/constants");
@@ -65,9 +63,8 @@ function DocumentListQuery(_ref) {
65
63
  data = _useState6[0],
66
64
  setData = _useState6[1];
67
65
 
68
- var router = (0, _deskTool.usePaneRouter)();
69
66
  (0, _react.useEffect)(() => {
70
- var query = "*[_type == $type]|order(@[$order] asc)";
67
+ var query = "*[_type == $type]|order(@[$order] asc){\n _id, _type, ".concat(_constants.ORDER_FIELD_NAME, "\n }");
71
68
  var queryParams = {
72
69
  type,
73
70
  order: _constants.ORDER_FIELD_NAME
@@ -126,7 +123,7 @@ function DocumentListQuery(_ref) {
126
123
  return (_subscription = subscription) === null || _subscription === void 0 ? void 0 : _subscription.unsubscribe();
127
124
  };
128
125
  /* eslint-disable-next-line react-hooks/exhaustive-deps */
129
- }, []);
126
+ }, [type]);
130
127
  var unorderedDataCount = (0, _react.useMemo)(() => data.length ? data.filter(doc => !doc[_constants.ORDER_FIELD_NAME]).length : 0, [data]);
131
128
  if (isLoading) return /*#__PURE__*/_react.default.createElement(_ui.Flex, {
132
129
  style: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/DocumentListQuery.js"],"names":["client","sanityClient","withConfig","apiVersion","DocumentListQuery","type","isLoading","setIsLoading","isUpdating","setIsUpdating","data","setData","router","query","queryParams","order","ORDER_FIELD_NAME","subscription","fetchData","fetch","then","documents","filteredDocuments","reduce","acc","cur","_id","startsWith","alsoHasDraft","some","doc","prepareData","listen","subscribe","length","unsubscribe","unorderedDataCount","filter","width","height","overflow","propTypes","PropTypes","string","isRequired"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types'\nimport React, {useEffect, useState, useMemo} from 'react'\nimport sanityClient from 'part:@sanity/base/client'\nimport {Stack, Box, Flex, Spinner} from '@sanity/ui'\nimport {usePaneRouter} from '@sanity/desk-tool'\n\nimport DraggableList from './DraggableList'\nimport {ORDER_FIELD_NAME} from './helpers/constants'\nimport Feedback from './Feedback'\n\nconst client = sanityClient.withConfig({\n apiVersion: '2021-09-01',\n})\n\nexport default function DocumentListQuery({type}) {\n const [isLoading, setIsLoading] = useState(true)\n const [isUpdating, setIsUpdating] = useState(false)\n const [data, setData] = useState([])\n const router = usePaneRouter()\n\n useEffect(() => {\n const query = `*[_type == $type]|order(@[$order] asc)`\n const queryParams = {type, order: ORDER_FIELD_NAME}\n let subscription = null\n\n // eslint-disable-next-line require-await\n const fetchData = async () => {\n client.fetch(query, queryParams).then((documents) => {\n // Remove published document from list if draft also exists\n const filteredDocuments = documents.reduce((acc, cur) => {\n if (!cur._id.startsWith(`drafts.`)) {\n // eslint-disable-next-line max-nested-callbacks\n const alsoHasDraft = documents.some((doc) => doc._id === `drafts.${cur._id}`)\n\n return alsoHasDraft ? acc : [...acc, cur]\n }\n\n return [...acc, cur]\n }, [])\n\n setData(filteredDocuments)\n\n if (isLoading) {\n setIsLoading(false)\n }\n })\n }\n\n const prepareData = async () => {\n setIsLoading(true)\n\n await fetchData()\n\n if (!subscription) {\n subscription = client.listen(query, queryParams).subscribe(() => fetchData())\n }\n }\n\n // Get data but only if a document isn't being patched or we don't yet have data\n if (!isUpdating && !data.length) {\n prepareData()\n }\n\n return () => subscription?.unsubscribe()\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, [])\n\n const unorderedDataCount = useMemo(\n () => (data.length ? data.filter((doc) => !doc[ORDER_FIELD_NAME]).length : 0),\n [data]\n )\n\n if (isLoading)\n return (\n <Flex style={{width: `100%`, height: `100%`}} align=\"center\" justify=\"center\">\n <Spinner />\n </Flex>\n )\n\n return (\n <Stack space={1} style={{overflow: `scroll`, height: `100%`}}>\n {unorderedDataCount > 0 && (\n <Feedback>\n {unorderedDataCount}/{data.length} Documents have no Order. Select{' '}\n <strong>Reset Order</strong> from the Menu above to fix.\n </Feedback>\n )}\n <Box padding={1}>\n <DraggableList data={data} isUpdating={isUpdating} setIsUpdating={setIsUpdating} />\n </Box>\n </Stack>\n )\n}\n\nDocumentListQuery.propTypes = {\n type: PropTypes.string.isRequired,\n}\n"],"file":"DocumentListQuery.js"}
1
+ {"version":3,"sources":["../src/DocumentListQuery.js"],"names":["client","sanityClient","withConfig","apiVersion","DocumentListQuery","type","isLoading","setIsLoading","isUpdating","setIsUpdating","data","setData","query","ORDER_FIELD_NAME","queryParams","order","subscription","fetchData","fetch","then","documents","filteredDocuments","reduce","acc","cur","_id","startsWith","alsoHasDraft","some","doc","prepareData","listen","subscribe","length","unsubscribe","unorderedDataCount","filter","width","height","overflow","propTypes","PropTypes","string","isRequired"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types'\nimport React, {useEffect, useState, useMemo} from 'react'\nimport sanityClient from 'part:@sanity/base/client'\nimport {Stack, Box, Flex, Spinner} from '@sanity/ui'\n\nimport DraggableList from './DraggableList'\nimport {ORDER_FIELD_NAME} from './helpers/constants'\nimport Feedback from './Feedback'\n\nconst client = sanityClient.withConfig({\n apiVersion: '2021-09-01',\n})\n\nexport default function DocumentListQuery({type}) {\n const [isLoading, setIsLoading] = useState(true)\n const [isUpdating, setIsUpdating] = useState(false)\n const [data, setData] = useState([])\n\n useEffect(() => {\n const query = `*[_type == $type]|order(@[$order] asc){\n _id, _type, ${ORDER_FIELD_NAME}\n }`\n const queryParams = {type, order: ORDER_FIELD_NAME}\n let subscription = null\n\n // eslint-disable-next-line require-await\n const fetchData = async () => {\n client.fetch(query, queryParams).then((documents) => {\n // Remove published document from list if draft also exists\n const filteredDocuments = documents.reduce((acc, cur) => {\n if (!cur._id.startsWith(`drafts.`)) {\n // eslint-disable-next-line max-nested-callbacks\n const alsoHasDraft = documents.some((doc) => doc._id === `drafts.${cur._id}`)\n\n return alsoHasDraft ? acc : [...acc, cur]\n }\n\n return [...acc, cur]\n }, [])\n\n setData(filteredDocuments)\n\n if (isLoading) {\n setIsLoading(false)\n }\n })\n }\n\n const prepareData = async () => {\n setIsLoading(true)\n\n await fetchData()\n\n if (!subscription) {\n subscription = client.listen(query, queryParams).subscribe(() => fetchData())\n }\n }\n\n // Get data but only if a document isn't being patched or we don't yet have data\n if (!isUpdating && !data.length) {\n prepareData()\n }\n\n return () => subscription?.unsubscribe()\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, [type])\n\n const unorderedDataCount = useMemo(\n () => (data.length ? data.filter((doc) => !doc[ORDER_FIELD_NAME]).length : 0),\n [data]\n )\n\n if (isLoading)\n return (\n <Flex style={{width: `100%`, height: `100%`}} align=\"center\" justify=\"center\">\n <Spinner />\n </Flex>\n )\n\n return (\n <Stack space={1} style={{overflow: `scroll`, height: `100%`}}>\n {unorderedDataCount > 0 && (\n <Feedback>\n {unorderedDataCount}/{data.length} Documents have no Order. Select{' '}\n <strong>Reset Order</strong> from the Menu above to fix.\n </Feedback>\n )}\n <Box padding={1}>\n <DraggableList data={data} isUpdating={isUpdating} setIsUpdating={setIsUpdating} />\n </Box>\n </Stack>\n )\n}\n\nDocumentListQuery.propTypes = {\n type: PropTypes.string.isRequired,\n}\n"],"file":"DocumentListQuery.js"}
@@ -45,9 +45,9 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
45
45
 
46
46
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
47
47
 
48
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
48
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
49
49
 
50
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
50
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
51
 
52
52
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
53
53
 
@@ -41,6 +41,8 @@ class OrderableDocumentList extends _react.Component {
41
41
  },
42
42
  resetOrder: function () {
43
43
  var _resetOrder2 = _asyncToGenerator(function* () {
44
+ var _update$results;
45
+
44
46
  _this.setState(() => ({
45
47
  resetOrderTransaction: {
46
48
  status: "info",
@@ -50,11 +52,12 @@ class OrderableDocumentList extends _react.Component {
50
52
  }));
51
53
 
52
54
  var update = yield (0, _resetOrder3.resetOrder)(_this.props.options.type);
55
+ var reorderWasSuccessful = update === null || update === void 0 ? void 0 : (_update$results = update.results) === null || _update$results === void 0 ? void 0 : _update$results.length;
53
56
 
54
57
  _this.setState(() => ({
55
58
  resetOrderTransaction: {
56
- status: "success",
57
- title: "Reordered ".concat(update.results.length, " Documents"),
59
+ status: reorderWasSuccessful ? "success" : "info",
60
+ title: reorderWasSuccessful ? "Reordered ".concat(update.results.length === 1 ? "Document" : "Documents") : "Reordering failed",
58
61
  closable: true
59
62
  }
60
63
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/OrderableDocumentList.js"],"names":["OrderableDocumentList","Component","constructor","props","showIncrements","setState","state","resetOrder","resetOrderTransaction","status","title","closable","update","options","type","results","length","render","PropTypes","shape","string","isRequired"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;;;;;AAEA;AACe,MAAMA,qBAAN,SAAoCC,gBAApC,CAA8C;AAO3DC,EAAAA,WAAW,CAACC,KAAD,EAAQ;AAAA;;AACjB,UAAMA,KAAN,CADiB;AAAA;;AAAA,4CAQF;AACfC,MAAAA,cAAc,EAAE,MAAM;AACpB,aAAKC,QAAL,CAAeC,KAAD,KAAY;AACxBF,UAAAA,cAAc,EAAE,CAACE,KAAK,CAACF;AADC,SAAZ,CAAd;AAGD,OALc;AAOfG,MAAAA,UAAU;AAAA,6CAAE,aAAY;AACtB,UAAA,KAAI,CAACF,QAAL,CAAc,OAAO;AACnBG,YAAAA,qBAAqB,EAAE;AACrBC,cAAAA,MAAM,QADe;AAErBC,cAAAA,KAAK,yBAFgB;AAGrBC,cAAAA,QAAQ,EAAE;AAHW;AADJ,WAAP,CAAd;;AAQA,cAAMC,MAAM,SAAS,6BAAW,KAAI,CAACT,KAAL,CAAWU,OAAX,CAAmBC,IAA9B,CAArB;;AAEA,UAAA,KAAI,CAACT,QAAL,CAAc,OAAO;AACnBG,YAAAA,qBAAqB,EAAE;AACrBC,cAAAA,MAAM,WADe;AAErBC,cAAAA,KAAK,sBAAeE,MAAM,CAACG,OAAP,CAAeC,MAA9B,eAFgB;AAGrBL,cAAAA,QAAQ,EAAE;AAHW;AADJ,WAAP,CAAd;AAOD,SAlBS;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAPK,KARE;;AAEjB,SAAKL,KAAL,GAAa;AACXF,MAAAA,cAAc,EAAE,KADL;AAEXI,MAAAA,qBAAqB,EAAE;AAFZ,KAAb;AAID;;AA8BDS,EAAAA,MAAM,GAAG;AAAA;;AACP,wBACE,6BAAC,4BAAD;AACE,MAAA,IAAI,EAAE,IAAF,aAAE,IAAF,sCAAE,KAAMd,KAAR,uEAAE,YAAaU,OAAf,wDAAE,oBAAsBC,IAD9B;AAEE,MAAA,cAAc,EAAE,KAAKR,KAAL,CAAWF,cAF7B;AAGE,MAAA,qBAAqB,EAAE,KAAKE,KAAL,CAAWE;AAHpC,MADF;AAOD;;AAnD0D;;;;gBAAxCR,qB,eACA;AACjBa,EAAAA,OAAO,EAAEK,mBAAUC,KAAV,CAAgB;AACvBL,IAAAA,IAAI,EAAEI,mBAAUE;AADO,GAAhB,EAENC;AAHc,C","sourcesContent":["import PropTypes from 'prop-types'\nimport React, {Component} from 'react'\n\nimport DocumentListWrapper from './DocumentListWrapper'\nimport {resetOrder} from './helpers/resetOrder'\n\n// Must use a Class Component here so the actionHandlers can be called\nexport default class OrderableDocumentList extends Component {\n static propTypes = {\n options: PropTypes.shape({\n type: PropTypes.string,\n }).isRequired,\n }\n\n constructor(props) {\n super(props)\n this.state = {\n showIncrements: false,\n resetOrderTransaction: {},\n }\n }\n\n actionHandlers = {\n showIncrements: () => {\n this.setState((state) => ({\n showIncrements: !state.showIncrements,\n }))\n },\n\n resetOrder: async () => {\n this.setState(() => ({\n resetOrderTransaction: {\n status: `info`,\n title: `Reordering started...`,\n closable: true,\n },\n }))\n\n const update = await resetOrder(this.props.options.type)\n\n this.setState(() => ({\n resetOrderTransaction: {\n status: `success`,\n title: `Reordered ${update.results.length} Documents`,\n closable: true,\n },\n }))\n },\n }\n\n render() {\n return (\n <DocumentListWrapper\n type={this?.props?.options?.type}\n showIncrements={this.state.showIncrements}\n resetOrderTransaction={this.state.resetOrderTransaction}\n />\n )\n }\n}\n"],"file":"OrderableDocumentList.js"}
1
+ {"version":3,"sources":["../src/OrderableDocumentList.js"],"names":["OrderableDocumentList","Component","constructor","props","showIncrements","setState","state","resetOrder","resetOrderTransaction","status","title","closable","update","options","type","reorderWasSuccessful","results","length","render","PropTypes","shape","string","isRequired"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;;;;;AAEA;AACe,MAAMA,qBAAN,SAAoCC,gBAApC,CAA8C;AAO3DC,EAAAA,WAAW,CAACC,KAAD,EAAQ;AAAA;;AACjB,UAAMA,KAAN,CADiB;AAAA;;AAAA,4CAQF;AACfC,MAAAA,cAAc,EAAE,MAAM;AACpB,aAAKC,QAAL,CAAeC,KAAD,KAAY;AACxBF,UAAAA,cAAc,EAAE,CAACE,KAAK,CAACF;AADC,SAAZ,CAAd;AAGD,OALc;AAOfG,MAAAA,UAAU;AAAA,6CAAE,aAAY;AAAA;;AACtB,UAAA,KAAI,CAACF,QAAL,CAAc,OAAO;AACnBG,YAAAA,qBAAqB,EAAE;AACrBC,cAAAA,MAAM,QADe;AAErBC,cAAAA,KAAK,yBAFgB;AAGrBC,cAAAA,QAAQ,EAAE;AAHW;AADJ,WAAP,CAAd;;AAQA,cAAMC,MAAM,SAAS,6BAAW,KAAI,CAACT,KAAL,CAAWU,OAAX,CAAmBC,IAA9B,CAArB;AAEA,cAAMC,oBAAoB,GAAGH,MAAH,aAAGA,MAAH,0CAAGA,MAAM,CAAEI,OAAX,oDAAG,gBAAiBC,MAA9C;;AAEA,UAAA,KAAI,CAACZ,QAAL,CAAc,OAAO;AACnBG,YAAAA,qBAAqB,EAAE;AACrBC,cAAAA,MAAM,EAAEM,oBAAoB,qBADP;AAErBL,cAAAA,KAAK,EAAEK,oBAAoB,uBACVH,MAAM,CAACI,OAAP,CAAeC,MAAf,KAA0B,CAA1B,2BADU,uBAFN;AAKrBN,cAAAA,QAAQ,EAAE;AALW;AADJ,WAAP,CAAd;AASD,SAtBS;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAPK,KARE;;AAEjB,SAAKL,KAAL,GAAa;AACXF,MAAAA,cAAc,EAAE,KADL;AAEXI,MAAAA,qBAAqB,EAAE;AAFZ,KAAb;AAID;;AAkCDU,EAAAA,MAAM,GAAG;AAAA;;AACP,wBACE,6BAAC,4BAAD;AACE,MAAA,IAAI,EAAE,IAAF,aAAE,IAAF,sCAAE,KAAMf,KAAR,uEAAE,YAAaU,OAAf,wDAAE,oBAAsBC,IAD9B;AAEE,MAAA,cAAc,EAAE,KAAKR,KAAL,CAAWF,cAF7B;AAGE,MAAA,qBAAqB,EAAE,KAAKE,KAAL,CAAWE;AAHpC,MADF;AAOD;;AAvD0D;;;;gBAAxCR,qB,eACA;AACjBa,EAAAA,OAAO,EAAEM,mBAAUC,KAAV,CAAgB;AACvBN,IAAAA,IAAI,EAAEK,mBAAUE;AADO,GAAhB,EAENC;AAHc,C","sourcesContent":["import PropTypes from 'prop-types'\nimport React, {Component} from 'react'\n\nimport DocumentListWrapper from './DocumentListWrapper'\nimport {resetOrder} from './helpers/resetOrder'\n\n// Must use a Class Component here so the actionHandlers can be called\nexport default class OrderableDocumentList extends Component {\n static propTypes = {\n options: PropTypes.shape({\n type: PropTypes.string,\n }).isRequired,\n }\n\n constructor(props) {\n super(props)\n this.state = {\n showIncrements: false,\n resetOrderTransaction: {},\n }\n }\n\n actionHandlers = {\n showIncrements: () => {\n this.setState((state) => ({\n showIncrements: !state.showIncrements,\n }))\n },\n\n resetOrder: async () => {\n this.setState(() => ({\n resetOrderTransaction: {\n status: `info`,\n title: `Reordering started...`,\n closable: true,\n },\n }))\n\n const update = await resetOrder(this.props.options.type)\n\n const reorderWasSuccessful = update?.results?.length\n\n this.setState(() => ({\n resetOrderTransaction: {\n status: reorderWasSuccessful ? `success` : `info`,\n title: reorderWasSuccessful\n ? `Reordered ${update.results.length === 1 ? `Document` : `Documents`}`\n : `Reordering failed`,\n closable: true,\n },\n }))\n },\n }\n\n render() {\n return (\n <DocumentListWrapper\n type={this?.props?.options?.type}\n showIncrements={this.state.showIncrements}\n resetOrderTransaction={this.state.resetOrderTransaction}\n />\n )\n }\n}\n"],"file":"OrderableDocumentList.js"}
@@ -9,11 +9,15 @@ var _structureBuilder = _interopRequireDefault(require("@sanity/desk-tool/struct
9
9
 
10
10
  var _icons = require("@sanity/icons");
11
11
 
12
+ var _schema = _interopRequireDefault(require("part:@sanity/base/schema"));
13
+
12
14
  var _OrderableDocumentList = _interopRequireDefault(require("../OrderableDocumentList"));
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
16
18
  function orderableDocumentListDeskItem() {
19
+ var _schema$get$title, _schema$get;
20
+
17
21
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
22
 
19
23
  if (!(config !== null && config !== void 0 && config.type)) {
@@ -26,14 +30,20 @@ function orderableDocumentListDeskItem() {
26
30
  var listTitle = title !== null && title !== void 0 ? title : "Orderable ".concat(type);
27
31
  var listId = "orderable-".concat(type);
28
32
  var listIcon = icon !== null && icon !== void 0 ? icon : _icons.SortIcon;
29
- return _structureBuilder.default.listItem(type).title(listTitle).id(listId).icon(listIcon).child( // This appears to be the only way to have a custom component in a list AND have a "compose" button that works
30
- Object.assign(_structureBuilder.default.documentTypeList(type).serialize(), {
33
+ var typeTitle = (_schema$get$title = (_schema$get = _schema.default.get(type)) === null || _schema$get === void 0 ? void 0 : _schema$get.title) !== null && _schema$get$title !== void 0 ? _schema$get$title : type;
34
+ return _structureBuilder.default.listItem(type).title(listTitle).id(listId).icon(listIcon).child(Object.assign(_structureBuilder.default.documentTypeList(type).serialize(), {
35
+ __preserveInstance: true,
31
36
  type: 'component',
32
37
  component: _OrderableDocumentList.default,
33
38
  options: {
34
39
  type
35
40
  },
36
- menuItems: [..._structureBuilder.default.documentTypeList(type).menuItems().serialize().menuItems, _structureBuilder.default.menuItem().title("Reset Order").icon(_icons.GenerateIcon).action("resetOrder").serialize(), _structureBuilder.default.menuItem().title("Show Increments").icon(_icons.SortIcon).action("showIncrements").serialize()]
41
+ menuItems: [_structureBuilder.default.menuItem().title("Create new ".concat(typeTitle)).intent({
42
+ type: 'create',
43
+ params: {
44
+ type
45
+ }
46
+ }).serialize(), _structureBuilder.default.menuItem().title("Reset Order").icon(_icons.GenerateIcon).action("resetOrder").serialize(), _structureBuilder.default.menuItem().title("Show Increments").icon(_icons.SortIcon).action("showIncrements").serialize()]
37
47
  })).serialize();
38
48
  }
39
49
  //# sourceMappingURL=orderableDocumentListDeskItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/desk-structure/orderableDocumentListDeskItem.js"],"names":["orderableDocumentListDeskItem","config","type","Error","title","icon","listTitle","listId","listIcon","SortIcon","S","listItem","id","child","Object","assign","documentTypeList","serialize","component","OrderableDocumentList","options","menuItems","menuItem","GenerateIcon","action"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEO,SAASA,6BAAT,GAAoD;AAAA,MAAbC,MAAa,uEAAJ,EAAI;;AACzD,MAAI,EAACA,MAAD,aAACA,MAAD,eAACA,MAAM,CAAEC,IAAT,CAAJ,EAAmB;AACjB,UAAM,IAAIC,KAAJ,2JAAN;AAKD;;AAED,MAAOD,IAAP,GAA4BD,MAA5B,CAAOC,IAAP;AAAA,MAAaE,KAAb,GAA4BH,MAA5B,CAAaG,KAAb;AAAA,MAAoBC,IAApB,GAA4BJ,MAA5B,CAAoBI,IAApB;AAEA,MAAMC,SAAS,GAAGF,KAAH,aAAGA,KAAH,cAAGA,KAAH,uBAAyBF,IAAzB,CAAf;AACA,MAAMK,MAAM,uBAAgBL,IAAhB,CAAZ;AACA,MAAMM,QAAQ,GAAGH,IAAH,aAAGA,IAAH,cAAGA,IAAH,GAAWI,eAAzB;AAEA,SAAOC,0BAAEC,QAAF,CAAWT,IAAX,EACJE,KADI,CACEE,SADF,EAEJM,EAFI,CAEDL,MAFC,EAGJF,IAHI,CAGCG,QAHD,EAIJK,KAJI,EAKH;AACAC,EAAAA,MAAM,CAACC,MAAP,CAAcL,0BAAEM,gBAAF,CAAmBd,IAAnB,EAAyBe,SAAzB,EAAd,EAAoD;AAClDf,IAAAA,IAAI,EAAE,WAD4C;AAElDgB,IAAAA,SAAS,EAAEC,8BAFuC;AAGlDC,IAAAA,OAAO,EAAE;AAAClB,MAAAA;AAAD,KAHyC;AAIlDmB,IAAAA,SAAS,EAAE,CACT,GAAGX,0BAAEM,gBAAF,CAAmBd,IAAnB,EAAyBmB,SAAzB,GAAqCJ,SAArC,GAAiDI,SAD3C,EAETX,0BAAEY,QAAF,GAAalB,KAAb,gBAAkCC,IAAlC,CAAuCkB,mBAAvC,EAAqDC,MAArD,eAA0EP,SAA1E,EAFS,EAGTP,0BAAEY,QAAF,GAAalB,KAAb,oBAAsCC,IAAtC,CAA2CI,eAA3C,EAAqDe,MAArD,mBAA8EP,SAA9E,EAHS;AAJuC,GAApD,CANG,EAiBJA,SAjBI,EAAP;AAkBD","sourcesContent":["import S from '@sanity/desk-tool/structure-builder'\nimport {SortIcon, GenerateIcon} from '@sanity/icons'\nimport OrderableDocumentList from '../OrderableDocumentList'\n\nexport function orderableDocumentListDeskItem(config = {}) {\n if (!config?.type) {\n throw new Error(`\n \"type\" not defined in orderableDocumentListDeskItem parameters.\n \\n\\n\n Example: orderableDocumentListDeskItem({type: 'category'})\n `)\n }\n\n const {type, title, icon} = config\n\n const listTitle = title ?? `Orderable ${type}`\n const listId = `orderable-${type}`\n const listIcon = icon ?? SortIcon\n\n return S.listItem(type)\n .title(listTitle)\n .id(listId)\n .icon(listIcon)\n .child(\n // This appears to be the only way to have a custom component in a list AND have a \"compose\" button that works\n Object.assign(S.documentTypeList(type).serialize(), {\n type: 'component',\n component: OrderableDocumentList,\n options: {type},\n menuItems: [\n ...S.documentTypeList(type).menuItems().serialize().menuItems,\n S.menuItem().title(`Reset Order`).icon(GenerateIcon).action(`resetOrder`).serialize(),\n S.menuItem().title(`Show Increments`).icon(SortIcon).action(`showIncrements`).serialize(),\n ],\n })\n )\n .serialize()\n}\n"],"file":"orderableDocumentListDeskItem.js"}
1
+ {"version":3,"sources":["../../src/desk-structure/orderableDocumentListDeskItem.js"],"names":["orderableDocumentListDeskItem","config","type","Error","title","icon","listTitle","listId","listIcon","SortIcon","typeTitle","schema","get","S","listItem","id","child","Object","assign","documentTypeList","serialize","__preserveInstance","component","OrderableDocumentList","options","menuItems","menuItem","intent","params","GenerateIcon","action"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;AAEO,SAASA,6BAAT,GAAoD;AAAA;;AAAA,MAAbC,MAAa,uEAAJ,EAAI;;AACzD,MAAI,EAACA,MAAD,aAACA,MAAD,eAACA,MAAM,CAAEC,IAAT,CAAJ,EAAmB;AACjB,UAAM,IAAIC,KAAJ,2JAAN;AAKD;;AAED,MAAOD,IAAP,GAA4BD,MAA5B,CAAOC,IAAP;AAAA,MAAaE,KAAb,GAA4BH,MAA5B,CAAaG,KAAb;AAAA,MAAoBC,IAApB,GAA4BJ,MAA5B,CAAoBI,IAApB;AAEA,MAAMC,SAAS,GAAGF,KAAH,aAAGA,KAAH,cAAGA,KAAH,uBAAyBF,IAAzB,CAAf;AACA,MAAMK,MAAM,uBAAgBL,IAAhB,CAAZ;AACA,MAAMM,QAAQ,GAAGH,IAAH,aAAGA,IAAH,cAAGA,IAAH,GAAWI,eAAzB;AACA,MAAMC,SAAS,uCAAGC,gBAAOC,GAAP,CAAWV,IAAX,CAAH,gDAAG,YAAkBE,KAArB,iEAA8BF,IAA7C;AAEA,SAAOW,0BAAEC,QAAF,CAAWZ,IAAX,EACJE,KADI,CACEE,SADF,EAEJS,EAFI,CAEDR,MAFC,EAGJF,IAHI,CAGCG,QAHD,EAIJQ,KAJI,CAKHC,MAAM,CAACC,MAAP,CAAcL,0BAAEM,gBAAF,CAAmBjB,IAAnB,EAAyBkB,SAAzB,EAAd,EAAoD;AAClDC,IAAAA,kBAAkB,EAAE,IAD8B;AAElDnB,IAAAA,IAAI,EAAE,WAF4C;AAGlDoB,IAAAA,SAAS,EAAEC,8BAHuC;AAIlDC,IAAAA,OAAO,EAAE;AAACtB,MAAAA;AAAD,KAJyC;AAKlDuB,IAAAA,SAAS,EAAE,CACTZ,0BAAEa,QAAF,GACGtB,KADH,sBACuBM,SADvB,GAEGiB,MAFH,CAEU;AAACzB,MAAAA,IAAI,EAAE,QAAP;AAAiB0B,MAAAA,MAAM,EAAE;AAAC1B,QAAAA;AAAD;AAAzB,KAFV,EAGGkB,SAHH,EADS,EAKTP,0BAAEa,QAAF,GAAatB,KAAb,gBAAkCC,IAAlC,CAAuCwB,mBAAvC,EAAqDC,MAArD,eAA0EV,SAA1E,EALS,EAMTP,0BAAEa,QAAF,GAAatB,KAAb,oBAAsCC,IAAtC,CAA2CI,eAA3C,EAAqDqB,MAArD,mBAA8EV,SAA9E,EANS;AALuC,GAApD,CALG,EAoBJA,SApBI,EAAP;AAqBD","sourcesContent":["import S from '@sanity/desk-tool/structure-builder'\nimport {SortIcon, GenerateIcon} from '@sanity/icons'\nimport schema from 'part:@sanity/base/schema'\n\nimport OrderableDocumentList from '../OrderableDocumentList'\n\nexport function orderableDocumentListDeskItem(config = {}) {\n if (!config?.type) {\n throw new Error(`\n \"type\" not defined in orderableDocumentListDeskItem parameters.\n \\n\\n\n Example: orderableDocumentListDeskItem({type: 'category'})\n `)\n }\n\n const {type, title, icon} = config\n\n const listTitle = title ?? `Orderable ${type}`\n const listId = `orderable-${type}`\n const listIcon = icon ?? SortIcon\n const typeTitle = schema.get(type)?.title ?? type\n\n return S.listItem(type)\n .title(listTitle)\n .id(listId)\n .icon(listIcon)\n .child(\n Object.assign(S.documentTypeList(type).serialize(), {\n __preserveInstance: true,\n type: 'component',\n component: OrderableDocumentList,\n options: {type},\n menuItems: [\n S.menuItem()\n .title(`Create new ${typeTitle}`)\n .intent({type: 'create', params: {type}})\n .serialize(),\n S.menuItem().title(`Reset Order`).icon(GenerateIcon).action(`resetOrder`).serialize(),\n S.menuItem().title(`Show Increments`).icon(SortIcon).action(`showIncrements`).serialize(),\n ],\n })\n )\n .serialize()\n}\n"],"file":"orderableDocumentListDeskItem.js"}
@@ -17,9 +17,9 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
17
17
 
18
18
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
19
19
 
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
21
 
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
23
 
24
24
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
25
 
@@ -30,12 +30,17 @@ function resetOrder() {
30
30
  function _resetOrder() {
31
31
  _resetOrder = _asyncToGenerator(function* () {
32
32
  var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
33
- var query = "*[_type == $type]|order(@[$order] asc)";
33
+ var query = "*[_type == $type]|order(@[$order] asc)._id";
34
34
  var queryParams = {
35
35
  type,
36
36
  order: _constants.ORDER_FIELD_NAME
37
37
  };
38
38
  var documents = yield client.fetch(query, queryParams);
39
+
40
+ if (!documents.length) {
41
+ return null;
42
+ }
43
+
39
44
  var transaction = client.transaction();
40
45
 
41
46
  var aLexoRank = _lexorank.LexoRank.min();
@@ -43,7 +48,7 @@ function _resetOrder() {
43
48
  for (var index = 0; index < documents.length; index += 1) {
44
49
  // Generate next rank before even the first document so there's room to move!
45
50
  aLexoRank = aLexoRank.genNext().genNext();
46
- transaction.patch(documents[index]._id, {
51
+ transaction.patch(documents[index], {
47
52
  set: {
48
53
  [_constants.ORDER_FIELD_NAME]: aLexoRank.value
49
54
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/resetOrder.js"],"names":["client","sanityClient","withConfig","apiVersion","resetOrder","type","query","queryParams","order","ORDER_FIELD_NAME","documents","fetch","transaction","aLexoRank","LexoRank","min","index","length","genNext","patch","_id","set","value","commit","then","update","catch","err"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,MAAM,GAAGC,gBAAaC,UAAb,CAAwB;AACrCC,EAAAA,UAAU,EAAE;AADyB,CAAxB,CAAf,C,CAIA;AACA;;;SACsBC,U;;;;;kCAAf,aAAqC;AAAA,QAAXC,IAAW;AAC1C,QAAMC,KAAK,2CAAX;AACA,QAAMC,WAAW,GAAG;AAACF,MAAAA,IAAD;AAAOG,MAAAA,KAAK,EAAEC;AAAd,KAApB;AACA,QAAMC,SAAS,SAASV,MAAM,CAACW,KAAP,CAAaL,KAAb,EAAoBC,WAApB,CAAxB;AAEA,QAAMK,WAAW,GAAGZ,MAAM,CAACY,WAAP,EAApB;;AACA,QAAIC,SAAS,GAAGC,mBAASC,GAAT,EAAhB;;AAEA,SAAK,IAAIC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGN,SAAS,CAACO,MAAtC,EAA8CD,KAAK,IAAI,CAAvD,EAA0D;AACxD;AACAH,MAAAA,SAAS,GAAGA,SAAS,CAACK,OAAV,GAAoBA,OAApB,EAAZ;AAEAN,MAAAA,WAAW,CAACO,KAAZ,CAAkBT,SAAS,CAACM,KAAD,CAAT,CAAiBI,GAAnC,EAAwC;AACtCC,QAAAA,GAAG,EAAE;AAAC,WAACZ,2BAAD,GAAoBI,SAAS,CAACS;AAA/B;AADiC,OAAxC;AAGD;;AAED,WAAOV,WAAW,CACfW,MADI,GAEJC,IAFI,CAEEC,MAAD,IAAYA,MAFb,EAGJC,KAHI,CAGGC,GAAD,IAASA,GAHX,CAAP;AAID,G","sourcesContent":["import {LexoRank} from 'lexorank'\nimport sanityClient from 'part:@sanity/base/client'\nimport {ORDER_FIELD_NAME} from './constants'\n\nconst client = sanityClient.withConfig({\n apiVersion: '2021-09-01',\n})\n\n// Function to wipe and re-do ordering with LexoRank\n// Will at least attempt to start with the current order\nexport async function resetOrder(type = ``) {\n const query = `*[_type == $type]|order(@[$order] asc)`\n const queryParams = {type, order: ORDER_FIELD_NAME}\n const documents = await client.fetch(query, queryParams)\n\n const transaction = client.transaction()\n let aLexoRank = LexoRank.min()\n\n for (let index = 0; index < documents.length; index += 1) {\n // Generate next rank before even the first document so there's room to move!\n aLexoRank = aLexoRank.genNext().genNext()\n\n transaction.patch(documents[index]._id, {\n set: {[ORDER_FIELD_NAME]: aLexoRank.value},\n })\n }\n\n return transaction\n .commit()\n .then((update) => update)\n .catch((err) => err)\n}\n"],"file":"resetOrder.js"}
1
+ {"version":3,"sources":["../../src/helpers/resetOrder.js"],"names":["client","sanityClient","withConfig","apiVersion","resetOrder","type","query","queryParams","order","ORDER_FIELD_NAME","documents","fetch","length","transaction","aLexoRank","LexoRank","min","index","genNext","patch","set","value","commit","then","update","catch","err"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,MAAM,GAAGC,gBAAaC,UAAb,CAAwB;AACrCC,EAAAA,UAAU,EAAE;AADyB,CAAxB,CAAf,C,CAIA;AACA;;;SACsBC,U;;;;;kCAAf,aAAqC;AAAA,QAAXC,IAAW;AAC1C,QAAMC,KAAK,+CAAX;AACA,QAAMC,WAAW,GAAG;AAACF,MAAAA,IAAD;AAAOG,MAAAA,KAAK,EAAEC;AAAd,KAApB;AACA,QAAMC,SAAS,SAASV,MAAM,CAACW,KAAP,CAAaL,KAAb,EAAoBC,WAApB,CAAxB;;AAEA,QAAI,CAACG,SAAS,CAACE,MAAf,EAAuB;AACrB,aAAO,IAAP;AACD;;AAED,QAAMC,WAAW,GAAGb,MAAM,CAACa,WAAP,EAApB;;AACA,QAAIC,SAAS,GAAGC,mBAASC,GAAT,EAAhB;;AAEA,SAAK,IAAIC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGP,SAAS,CAACE,MAAtC,EAA8CK,KAAK,IAAI,CAAvD,EAA0D;AACxD;AACAH,MAAAA,SAAS,GAAGA,SAAS,CAACI,OAAV,GAAoBA,OAApB,EAAZ;AAEAL,MAAAA,WAAW,CAACM,KAAZ,CAAkBT,SAAS,CAACO,KAAD,CAA3B,EAAoC;AAClCG,QAAAA,GAAG,EAAE;AAAC,WAACX,2BAAD,GAAoBK,SAAS,CAACO;AAA/B;AAD6B,OAApC;AAGD;;AAED,WAAOR,WAAW,CACfS,MADI,GAEJC,IAFI,CAEEC,MAAD,IAAYA,MAFb,EAGJC,KAHI,CAGGC,GAAD,IAASA,GAHX,CAAP;AAID,G","sourcesContent":["import {LexoRank} from 'lexorank'\nimport sanityClient from 'part:@sanity/base/client'\nimport {ORDER_FIELD_NAME} from './constants'\n\nconst client = sanityClient.withConfig({\n apiVersion: '2021-09-01',\n})\n\n// Function to wipe and re-do ordering with LexoRank\n// Will at least attempt to start with the current order\nexport async function resetOrder(type = ``) {\n const query = `*[_type == $type]|order(@[$order] asc)._id`\n const queryParams = {type, order: ORDER_FIELD_NAME}\n const documents = await client.fetch(query, queryParams)\n\n if (!documents.length) {\n return null\n }\n\n const transaction = client.transaction()\n let aLexoRank = LexoRank.min()\n\n for (let index = 0; index < documents.length; index += 1) {\n // Generate next rank before even the first document so there's room to move!\n aLexoRank = aLexoRank.genNext().genNext()\n\n transaction.patch(documents[index], {\n set: {[ORDER_FIELD_NAME]: aLexoRank.value},\n })\n }\n\n return transaction\n .commit()\n .then((update) => update)\n .catch((err) => err)\n}\n"],"file":"resetOrder.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/orderable-document-list",
3
- "version": "0.0.2",
3
+ "version": "0.0.5",
4
4
  "description": "Drag-and-drop Document Ordering without leaving the Editing surface",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -29,9 +29,9 @@
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
31
  "@sanity/icons": "^1.2.1",
32
- "@sanity/ui": "^0.36.12",
32
+ "@sanity/ui": "^0.37.6",
33
33
  "lexorank": "^1.0.4",
34
- "prop-types": "15.7.2",
34
+ "prop-types": "^15.8.1",
35
35
  "react-beautiful-dnd": "^13.1.0"
36
36
  },
37
37
  "devDependencies": {
@@ -53,10 +53,10 @@
53
53
  "husky": "^7.0.2",
54
54
  "pinst": "^2.1.6",
55
55
  "prettier": "^2.4.1",
56
- "sanipack": "2.0.1"
56
+ "sanipack": "^2.1.0"
57
57
  },
58
58
  "peerDependencies": {
59
- "@sanity/desk-tool": "^2.21.3",
59
+ "@sanity/desk-tool": "^2.29.0",
60
60
  "react": "^17.0.2"
61
61
  },
62
62
  "bugs": {
package/src/Document.js CHANGED
@@ -25,6 +25,24 @@ export default function Document({doc, increment, entities, handleSelect, index,
25
25
  <DragHandleIcon />
26
26
  </Text>
27
27
  </Box>
28
+ {showIncrements && (
29
+ <Flex style={{flexShrink: 0}} align="center" gap={1} paddingRight={1}>
30
+ <Button
31
+ padding={2}
32
+ mode="ghost"
33
+ onClick={() => increment(index, index + -1, doc._id, entities)}
34
+ disabled={isFirst}
35
+ icon={ChevronUpIcon}
36
+ />
37
+ <Button
38
+ padding={2}
39
+ mode="ghost"
40
+ disabled={isLast}
41
+ onClick={() => increment(index, index + 1, doc._id, entities)}
42
+ icon={ChevronDownIcon}
43
+ />
44
+ </Flex>
45
+ )}
28
46
  <Button
29
47
  style={{width: `100%`}}
30
48
  padding={2}
@@ -32,24 +50,6 @@ export default function Document({doc, increment, entities, handleSelect, index,
32
50
  onClick={(e) => handleSelect(doc._id, index, e.nativeEvent)}
33
51
  >
34
52
  <Flex flex={1} align="center">
35
- {showIncrements && (
36
- <Flex style={{flexShrink: 0}} align="center" gap={1} paddingRight={2}>
37
- <Button
38
- padding={2}
39
- mode="ghost"
40
- onClick={() => increment(index, index + -1, doc._id, entities)}
41
- disabled={isFirst}
42
- icon={ChevronUpIcon}
43
- />
44
- <Button
45
- padding={2}
46
- mode="ghost"
47
- disabled={isLast}
48
- onClick={() => increment(index, index + 1, doc._id, entities)}
49
- icon={ChevronDownIcon}
50
- />
51
- </Flex>
52
- )}
53
53
  <Box flex={1}>
54
54
  <Preview value={doc} type={schema.get(doc._type)} />
55
55
  </Box>
@@ -2,7 +2,6 @@ import PropTypes from 'prop-types'
2
2
  import React, {useEffect, useState, useMemo} from 'react'
3
3
  import sanityClient from 'part:@sanity/base/client'
4
4
  import {Stack, Box, Flex, Spinner} from '@sanity/ui'
5
- import {usePaneRouter} from '@sanity/desk-tool'
6
5
 
7
6
  import DraggableList from './DraggableList'
8
7
  import {ORDER_FIELD_NAME} from './helpers/constants'
@@ -16,10 +15,11 @@ export default function DocumentListQuery({type}) {
16
15
  const [isLoading, setIsLoading] = useState(true)
17
16
  const [isUpdating, setIsUpdating] = useState(false)
18
17
  const [data, setData] = useState([])
19
- const router = usePaneRouter()
20
18
 
21
19
  useEffect(() => {
22
- const query = `*[_type == $type]|order(@[$order] asc)`
20
+ const query = `*[_type == $type]|order(@[$order] asc){
21
+ _id, _type, ${ORDER_FIELD_NAME}
22
+ }`
23
23
  const queryParams = {type, order: ORDER_FIELD_NAME}
24
24
  let subscription = null
25
25
 
@@ -63,7 +63,7 @@ export default function DocumentListQuery({type}) {
63
63
 
64
64
  return () => subscription?.unsubscribe()
65
65
  /* eslint-disable-next-line react-hooks/exhaustive-deps */
66
- }, [])
66
+ }, [type])
67
67
 
68
68
  const unorderedDataCount = useMemo(
69
69
  () => (data.length ? data.filter((doc) => !doc[ORDER_FIELD_NAME]).length : 0),
@@ -38,10 +38,14 @@ export default class OrderableDocumentList extends Component {
38
38
 
39
39
  const update = await resetOrder(this.props.options.type)
40
40
 
41
+ const reorderWasSuccessful = update?.results?.length
42
+
41
43
  this.setState(() => ({
42
44
  resetOrderTransaction: {
43
- status: `success`,
44
- title: `Reordered ${update.results.length} Documents`,
45
+ status: reorderWasSuccessful ? `success` : `info`,
46
+ title: reorderWasSuccessful
47
+ ? `Reordered ${update.results.length === 1 ? `Document` : `Documents`}`
48
+ : `Reordering failed`,
45
49
  closable: true,
46
50
  },
47
51
  }))
@@ -1,5 +1,7 @@
1
1
  import S from '@sanity/desk-tool/structure-builder'
2
2
  import {SortIcon, GenerateIcon} from '@sanity/icons'
3
+ import schema from 'part:@sanity/base/schema'
4
+
3
5
  import OrderableDocumentList from '../OrderableDocumentList'
4
6
 
5
7
  export function orderableDocumentListDeskItem(config = {}) {
@@ -16,19 +18,23 @@ export function orderableDocumentListDeskItem(config = {}) {
16
18
  const listTitle = title ?? `Orderable ${type}`
17
19
  const listId = `orderable-${type}`
18
20
  const listIcon = icon ?? SortIcon
21
+ const typeTitle = schema.get(type)?.title ?? type
19
22
 
20
23
  return S.listItem(type)
21
24
  .title(listTitle)
22
25
  .id(listId)
23
26
  .icon(listIcon)
24
27
  .child(
25
- // This appears to be the only way to have a custom component in a list AND have a "compose" button that works
26
28
  Object.assign(S.documentTypeList(type).serialize(), {
29
+ __preserveInstance: true,
27
30
  type: 'component',
28
31
  component: OrderableDocumentList,
29
32
  options: {type},
30
33
  menuItems: [
31
- ...S.documentTypeList(type).menuItems().serialize().menuItems,
34
+ S.menuItem()
35
+ .title(`Create new ${typeTitle}`)
36
+ .intent({type: 'create', params: {type}})
37
+ .serialize(),
32
38
  S.menuItem().title(`Reset Order`).icon(GenerateIcon).action(`resetOrder`).serialize(),
33
39
  S.menuItem().title(`Show Increments`).icon(SortIcon).action(`showIncrements`).serialize(),
34
40
  ],
@@ -9,10 +9,14 @@ const client = sanityClient.withConfig({
9
9
  // Function to wipe and re-do ordering with LexoRank
10
10
  // Will at least attempt to start with the current order
11
11
  export async function resetOrder(type = ``) {
12
- const query = `*[_type == $type]|order(@[$order] asc)`
12
+ const query = `*[_type == $type]|order(@[$order] asc)._id`
13
13
  const queryParams = {type, order: ORDER_FIELD_NAME}
14
14
  const documents = await client.fetch(query, queryParams)
15
15
 
16
+ if (!documents.length) {
17
+ return null
18
+ }
19
+
16
20
  const transaction = client.transaction()
17
21
  let aLexoRank = LexoRank.min()
18
22
 
@@ -20,7 +24,7 @@ export async function resetOrder(type = ``) {
20
24
  // Generate next rank before even the first document so there's room to move!
21
25
  aLexoRank = aLexoRank.genNext().genNext()
22
26
 
23
- transaction.patch(documents[index]._id, {
27
+ transaction.patch(documents[index], {
24
28
  set: {[ORDER_FIELD_NAME]: aLexoRank.value},
25
29
  })
26
30
  }