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 13.5 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, Text} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {\n CommandList,\n type CommandListItemContext,\n type GeneralPreviewLayoutKey,\n useGetI18nText,\n useI18nText,\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 DividerContainer = styled(Box)`\n display: flex;\n align-items: center;\n gap: 1rem;\n margin: 0.75rem 0 0.25rem 0;\n`\n\nconst Divider = styled.hr`\n flex: 1;\n background-color: var(--card-border-color);\n height: 1px;\n margin: 0;\n border: none;\n`\n\nconst DividerTitle = styled(Text)`\n padding-bottom: 0.75rem;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n`\n\ninterface DividerItemProps {\n item: PaneListItemDivider\n}\n\nfunction DividerItem({item}: DividerItemProps) {\n const {title: dividerTitle} = useI18nText(item)\n return (\n <DividerContainer>\n <DividerTitle weight=\"semibold\" muted size={1}>\n {dividerTitle}\n </DividerTitle>\n\n <Divider />\n </DividerContainer>\n )\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 <Box key={`divider-${itemIndex}`} marginBottom={1}>\n {item.title ? <DividerItem item={item} /> : <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":["DividerContainer","styled","Box","Divider","hr","DividerTitle","Text","DividerItem","t0","$","_c","item","title","dividerTitle","useI18nText","t1","t2","Symbol","for","t3","ListPaneContent","props","childItemId","items","isActive","layout","showIcons","collapsed","layoutCollapsed","usePaneLayout","filter","_temp","getI18nText","useGetI18nText","itemIndex","find","_","i","type","getItemDisabled","item_0","itemShowIcon","displayOptions","showIcon","shouldShowIconForItem","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","source","_DEBUG"],"mappings":"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"}