UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

1 lines 12.1 kB
{"version":3,"file":"index2.mjs","sources":["../../src/structure/panes/list/ListPaneContent.tsx","../../src/structure/panes/list/ListPaneHeader.tsx","../../src/structure/panes/list/ListPane.tsx"],"sourcesContent":["import {Box} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {\n CommandList,\n type CommandListItemContext,\n type GeneralPreviewLayoutKey,\n useGetI18nText,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {PaneContent, PaneItem, usePaneLayout} from '../../components'\nimport {type PaneListItem, type PaneListItemDivider} from '../../types'\n\ninterface ListPaneContentProps {\n childItemId?: string\n isActive?: boolean\n items: (PaneListItem<unknown> | PaneListItemDivider)[] | undefined\n layout?: GeneralPreviewLayoutKey\n showIcons: boolean\n title: string\n}\n\nconst Divider = styled.hr`\n background-color: var(--card-border-color);\n height: 1px;\n margin: 0;\n border: none;\n`\n\n/**\n * @internal\n */\nexport function ListPaneContent(props: ListPaneContentProps) {\n const {childItemId, items, isActive, layout, showIcons, title} = props\n const {collapsed: layoutCollapsed} = usePaneLayout()\n const getI18nText = useGetI18nText(\n items?.filter(\n (item): item is Exclude<typeof item, {type: 'divider'}> => item.type !== 'divider',\n ),\n )\n\n const getItemDisabled = useCallback(\n (itemIndex: number) => {\n return items?.find((_, i) => i === itemIndex)?.type === 'divider'\n },\n [items],\n )\n\n const shouldShowIconForItem = useCallback(\n (item: PaneListItem): boolean => {\n const itemShowIcon = item.displayOptions?.showIcon\n\n // Specific true/false on item should have precedence over list setting\n if (typeof itemShowIcon !== 'undefined') {\n return itemShowIcon !== false // Boolean(item.icon)\n }\n\n // If no item setting is defined, defer to the pane settings\n return showIcons !== false // Boolean(item.icon)\n },\n [showIcons],\n )\n\n const renderItem = useCallback(\n (item: PaneListItem<unknown> | PaneListItemDivider, ctx: CommandListItemContext) => {\n const {virtualIndex: itemIndex} = ctx\n\n if (item.type === 'divider') {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <Box key={`divider-${itemIndex}`} marginBottom={1}>\n <Divider />\n </Box>\n )\n }\n\n const pressed = !isActive && childItemId === item.id\n const selected = isActive && childItemId === item.id\n // If this is a document list item, pass on the ID and type,\n // otherwise leave it undefined to use the passed title and gang\n const value =\n item._id && item.schemaType\n ? {_id: item._id, _type: item.schemaType.name, title: item.title}\n : undefined\n\n return (\n <PaneItem\n icon={shouldShowIconForItem(item) ? item.icon : false}\n id={item.id}\n key={item.id}\n layout={layout}\n marginBottom={1}\n pressed={pressed}\n schemaType={item.schemaType}\n selected={selected}\n title={getI18nText(item).title}\n value={value}\n />\n )\n },\n [childItemId, getI18nText, isActive, layout, shouldShowIconForItem],\n )\n\n return (\n <PaneContent overflow={layoutCollapsed ? 'hidden' : 'auto'}>\n {items && items.length > 0 && (\n <CommandList\n activeItemDataAttr=\"data-hovered\"\n ariaLabel={title}\n canReceiveFocus\n getItemDisabled={getItemDisabled}\n itemHeight={51}\n items={items}\n onlyShowSelectionWhenActive\n paddingBottom={1}\n paddingX={3}\n renderItem={renderItem}\n wrapAround={false}\n />\n )}\n </PaneContent>\n )\n}\n","import {ArrowLeftIcon} from '@sanity/icons'\n\nimport {Button} from '../../../ui-components'\nimport {BackLink, PaneHeader, PaneHeaderActions, usePane} from '../../components'\nimport {type PaneMenuItem, type PaneMenuItemGroup} from '../../types'\nimport {useStructureTool} from '../../useStructureTool'\n\ninterface ListPaneHeaderProps {\n index: number\n menuItems?: PaneMenuItem[]\n menuItemGroups?: PaneMenuItemGroup[]\n title: string\n}\n\nexport const ListPaneHeader = ({index, menuItems, menuItemGroups, title}: ListPaneHeaderProps) => {\n const {features} = useStructureTool()\n const {collapsed, isLast} = usePane()\n // Prevent focus if this is the last (non-collapsed) pane.\n const tabIndex = isLast && !collapsed ? -1 : 0\n\n return (\n <PaneHeader\n actions={<PaneHeaderActions menuItems={menuItems} menuItemGroups={menuItemGroups} />}\n backButton={\n features.backButton &&\n index > 0 && (\n <Button\n as={BackLink}\n data-as=\"a\"\n icon={ArrowLeftIcon}\n mode=\"bleed\"\n tooltipProps={{content: 'Back'}}\n />\n )\n }\n tabIndex={tabIndex}\n title={title}\n />\n )\n}\n","import {Card, Code} from '@sanity/ui'\nimport {useI18nText} from 'sanity'\n\nimport {Pane} from '../../components'\nimport {_DEBUG} from '../../constants'\nimport {type BaseStructureToolPaneProps} from '../types'\nimport {ListPaneContent} from './ListPaneContent'\nimport {ListPaneHeader} from './ListPaneHeader'\n\ntype ListPaneProps = BaseStructureToolPaneProps<'list'>\n\n/**\n * @internal\n */\nexport function ListPane(props: ListPaneProps) {\n const {childItemId, index, isActive, isSelected, pane, paneKey} = props\n\n const {defaultLayout, displayOptions, items, menuItems, menuItemGroups} = pane\n const showIcons = displayOptions?.showIcons !== false\n const {title} = useI18nText(pane)\n\n return (\n <Pane\n currentMaxWidth={350}\n data-testid=\"structure-tool-list-pane\"\n data-ui=\"ListPane\"\n id={paneKey}\n maxWidth={640}\n minWidth={320}\n selected={isSelected}\n >\n {_DEBUG && (\n <Card padding={4} tone=\"transparent\">\n <Code>{pane.source || '(none)'}</Code>\n </Card>\n )}\n\n <ListPaneHeader\n index={index}\n menuItems={menuItems}\n menuItemGroups={menuItemGroups}\n title={title}\n />\n\n <ListPaneContent\n childItemId={childItemId}\n isActive={isActive}\n items={items}\n layout={defaultLayout}\n key={paneKey}\n showIcons={showIcons}\n title={title}\n />\n </Pane>\n )\n}\n"],"names":["Divider","styled","hr","ListPaneContent","props","$","_c","childItemId","items","isActive","layout","showIcons","title","collapsed","layoutCollapsed","usePaneLayout","t0","filter","_temp","getI18nText","useGetI18nText","t1","itemIndex","find","_","i","type","getItemDisabled","t2","item_0","itemShowIcon","item","displayOptions","showIcon","shouldShowIconForItem","t3","item_1","ctx","virtualIndex","itemIndex_0","pressed","id","selected","value","_id","schemaType","_type","name","undefined","icon","renderItem","t4","t5","length","t6","ListPaneHeader","index","menuItems","menuItemGroups","features","useStructureTool","isLast","usePane","tabIndex","backButton","BackLink","ArrowLeftIcon","content","ListPane","isSelected","pane","paneKey","defaultLayout","useI18nText","source","_DEBUG"],"mappings":"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"}