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 key={item.id}\n icon={shouldShowIconForItem(item) ? item.icon : false}\n id={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 key={paneKey}\n childItemId={childItemId}\n isActive={isActive}\n items={items}\n layout={defaultLayout}\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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"}