@wordpress/dataviews 4.4.6 → 4.4.8
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/build/dataviews-layouts/list/index.js +70 -75
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +70 -75
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-style/style-rtl.css +29 -31
- package/build-style/style.css +29 -31
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/dataviews-layouts/list/index.tsx +81 -100
- package/src/dataviews-layouts/list/style.scss +32 -43
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -98,11 +98,11 @@ function ListItem({
|
|
|
98
98
|
const labelId = `${idPrefix}-label`;
|
|
99
99
|
const descriptionId = `${idPrefix}-description`;
|
|
100
100
|
const [isHovered, setIsHovered] = (0, _element.useState)(false);
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
setIsHovered(
|
|
101
|
+
const handleHover = ({
|
|
102
|
+
type
|
|
103
|
+
}) => {
|
|
104
|
+
const isHover = type === 'mouseenter';
|
|
105
|
+
setIsHovered(isHover);
|
|
106
106
|
};
|
|
107
107
|
(0, _element.useEffect)(() => {
|
|
108
108
|
if (isSelected) {
|
|
@@ -134,6 +134,35 @@ function ListItem({
|
|
|
134
134
|
const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/(0, _jsxRuntime.jsx)(primaryField.render, {
|
|
135
135
|
item: item
|
|
136
136
|
}) : null;
|
|
137
|
+
const usedActions = eligibleActions?.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
138
|
+
spacing: 3,
|
|
139
|
+
className: "dataviews-view-list__item-actions",
|
|
140
|
+
children: [primaryAction && /*#__PURE__*/(0, _jsxRuntime.jsx)(PrimaryActionGridCell, {
|
|
141
|
+
idPrefix: idPrefix,
|
|
142
|
+
primaryAction: primaryAction,
|
|
143
|
+
item: item
|
|
144
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
145
|
+
role: "gridcell",
|
|
146
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenu, {
|
|
147
|
+
trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.Item, {
|
|
148
|
+
id: generateDropdownTriggerCompositeId(idPrefix),
|
|
149
|
+
render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
150
|
+
size: "small",
|
|
151
|
+
icon: _icons.moreVertical,
|
|
152
|
+
label: (0, _i18n.__)('Actions'),
|
|
153
|
+
accessibleWhenDisabled: true,
|
|
154
|
+
disabled: !actions.length,
|
|
155
|
+
onKeyDown: onDropdownTriggerKeyDown
|
|
156
|
+
})
|
|
157
|
+
}),
|
|
158
|
+
placement: "bottom-end",
|
|
159
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsItemActions.ActionsDropdownMenuGroup, {
|
|
160
|
+
actions: eligibleActions,
|
|
161
|
+
item: item
|
|
162
|
+
})
|
|
163
|
+
})
|
|
164
|
+
})]
|
|
165
|
+
});
|
|
137
166
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.Row, {
|
|
138
167
|
ref: itemRef,
|
|
139
168
|
render: /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {}),
|
|
@@ -142,89 +171,55 @@ function ListItem({
|
|
|
142
171
|
'is-selected': isSelected,
|
|
143
172
|
'is-hovered': isHovered
|
|
144
173
|
}),
|
|
145
|
-
onMouseEnter:
|
|
146
|
-
onMouseLeave:
|
|
174
|
+
onMouseEnter: handleHover,
|
|
175
|
+
onMouseLeave: handleHover,
|
|
147
176
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
148
177
|
className: "dataviews-view-list__item-wrapper",
|
|
149
|
-
alignment: "center",
|
|
150
178
|
spacing: 0,
|
|
151
179
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
152
180
|
role: "gridcell",
|
|
153
181
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.Item, {
|
|
154
|
-
render: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}),
|
|
155
|
-
role: "button",
|
|
156
182
|
id: generateItemWrapperCompositeId(idPrefix),
|
|
157
183
|
"aria-pressed": isSelected,
|
|
158
184
|
"aria-labelledby": labelId,
|
|
159
185
|
"aria-describedby": descriptionId,
|
|
160
186
|
className: "dataviews-view-list__item",
|
|
161
|
-
onClick: () => onSelect(item)
|
|
162
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
163
|
-
spacing: 3,
|
|
164
|
-
justify: "start",
|
|
165
|
-
alignment: "flex-start",
|
|
166
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
167
|
-
className: "dataviews-view-list__media-wrapper",
|
|
168
|
-
children: renderedMediaField
|
|
169
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
170
|
-
spacing: 1,
|
|
171
|
-
className: "dataviews-view-list__field-wrapper",
|
|
172
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
173
|
-
className: "dataviews-view-list__primary-field",
|
|
174
|
-
id: labelId,
|
|
175
|
-
children: renderedPrimaryField
|
|
176
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
177
|
-
className: "dataviews-view-list__fields",
|
|
178
|
-
id: descriptionId,
|
|
179
|
-
children: visibleFields.map(field => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
180
|
-
className: "dataviews-view-list__field",
|
|
181
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
|
|
182
|
-
as: "span",
|
|
183
|
-
className: "dataviews-view-list__field-label",
|
|
184
|
-
children: field.label
|
|
185
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
186
|
-
className: "dataviews-view-list__field-value",
|
|
187
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(field.render, {
|
|
188
|
-
item: item
|
|
189
|
-
})
|
|
190
|
-
})]
|
|
191
|
-
}, field.id))
|
|
192
|
-
})]
|
|
193
|
-
})]
|
|
194
|
-
})
|
|
187
|
+
onClick: () => onSelect(item)
|
|
195
188
|
})
|
|
196
|
-
}),
|
|
189
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
197
190
|
spacing: 3,
|
|
198
|
-
justify: "
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
},
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
191
|
+
justify: "start",
|
|
192
|
+
alignment: "flex-start",
|
|
193
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
194
|
+
className: "dataviews-view-list__media-wrapper",
|
|
195
|
+
children: renderedMediaField
|
|
196
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
197
|
+
spacing: 1,
|
|
198
|
+
className: "dataviews-view-list__field-wrapper",
|
|
199
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
200
|
+
spacing: 0,
|
|
201
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
202
|
+
className: "dataviews-view-list__primary-field",
|
|
203
|
+
id: labelId,
|
|
204
|
+
children: renderedPrimaryField
|
|
205
|
+
}), usedActions]
|
|
206
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
207
|
+
className: "dataviews-view-list__fields",
|
|
208
|
+
id: descriptionId,
|
|
209
|
+
children: visibleFields.map(field => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
210
|
+
className: "dataviews-view-list__field",
|
|
211
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
|
|
212
|
+
as: "span",
|
|
213
|
+
className: "dataviews-view-list__field-label",
|
|
214
|
+
children: field.label
|
|
215
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
216
|
+
className: "dataviews-view-list__field-value",
|
|
217
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(field.render, {
|
|
218
|
+
item: item
|
|
219
|
+
})
|
|
220
|
+
})]
|
|
221
|
+
}, field.id))
|
|
222
|
+
})]
|
|
228
223
|
})]
|
|
229
224
|
})]
|
|
230
225
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_element","_i18n","_icons","_data","_lockUnlock","_dataviewsItemActions","_jsxRuntime","DropdownMenuV2","DropdownMenu","unlock","componentsPrivateApis","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","useRegistry","isModalOpen","setIsModalOpen","useState","compositeItemId","id","label","jsx","role","children","Composite","Item","render","Button","icon","isDestructive","size","onClick","ActionModal","action","items","closeModal","callback","ListItem","actions","isSelected","mediaField","onSelect","primaryField","visibleFields","onDropdownTriggerKeyDown","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","handleMouseEnter","handleMouseLeave","useEffect","current","scrollIntoView","behavior","block","inline","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","renderedMediaField","className","renderedPrimaryField","Row","ref","clsx","onMouseEnter","onMouseLeave","jsxs","__experimentalHStack","alignment","spacing","justify","__experimentalVStack","map","field","VisuallyHidden","as","length","style","flexShrink","width","trigger","moreVertical","__","accessibleWhenDisabled","disabled","onKeyDown","placement","ActionsDropdownMenuGroup","ViewList","props","data","fields","getItemId","isLoading","onChangeSelection","selection","view","baseId","useInstanceId","selectedItem","findLast","includes","find","layout","viewFields","generateCompositeItemIdPrefix","useCallback","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","usePrevious","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","Spinner","activeId","setActiveId"],"sources":["@wordpress/dataviews/src/dataviews-layouts/list/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, usePrevious } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\tSpinner,\n\tVisuallyHidden,\n\tComposite,\n} from '@wordpress/components';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tActionsDropdownMenuGroup,\n\tActionModal,\n} from '../../components/dataviews-item-actions';\nimport type { Action, NormalizedField, ViewListProps } from '../../types';\n\ninterface ListViewItemProps< Item > {\n\tactions: Action< Item >[];\n\tidPrefix: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tonDropdownTriggerKeyDown: React.KeyboardEventHandler< HTMLButtonElement >;\n}\n\nconst { DropdownMenuV2: DropdownMenu } = unlock( componentsPrivateApis );\n\nfunction generateItemWrapperCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-item-wrapper`;\n}\nfunction generatePrimaryActionCompositeId(\n\tidPrefix: string,\n\tprimaryActionId: string\n) {\n\treturn `${ idPrefix }-primary-action-${ primaryActionId }`;\n}\nfunction generateDropdownTriggerCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-dropdown`;\n}\n\nfunction PrimaryActionGridCell< Item >( {\n\tidPrefix,\n\tprimaryAction,\n\titem,\n}: {\n\tidPrefix: string;\n\tprimaryAction: Action< Item >;\n\titem: Item;\n} ) {\n\tconst registry = useRegistry();\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst compositeItemId = generatePrimaryActionCompositeId(\n\t\tidPrefix,\n\t\tprimaryAction.id\n\t);\n\n\tconst label =\n\t\ttypeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] );\n\n\treturn 'RenderModal' in primaryAction ? (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Composite.Item>\n\t\t</div>\n\t) : (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tprimaryAction.callback( [ item ], { registry } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction ListItem< Item >( {\n\tactions,\n\tidPrefix,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tvisibleFields,\n\tonDropdownTriggerKeyDown,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLDivElement >( null );\n\tconst labelId = `${ idPrefix }-label`;\n\tconst descriptionId = `${ idPrefix }-description`;\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\tconst { primaryAction, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryAction: _primaryActions?.[ 0 ],\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : (\n\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t);\n\n\tconst renderedPrimaryField = primaryField?.render ? (\n\t\t<primaryField.render item={ item } />\n\t) : null;\n\n\treturn (\n\t\t<Composite.Row\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ clsx( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-view-list__item-wrapper\"\n\t\t\t\talignment=\"center\"\n\t\t\t\tspacing={ 0 }\n\t\t\t>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ generateItemWrapperCompositeId( idPrefix ) }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-wrapper\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ renderedPrimaryField }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.label }\n\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</Composite.Item>\n\t\t\t\t</div>\n\t\t\t\t{ eligibleActions?.length > 0 && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item-actions\"\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tflexShrink: '0',\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ primaryAction && (\n\t\t\t\t\t\t\t<PrimaryActionGridCell\n\t\t\t\t\t\t\t\tidPrefix={ idPrefix }\n\t\t\t\t\t\t\t\tprimaryAction={ primaryAction }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\t\tid={ generateDropdownTriggerCompositeId(\n\t\t\t\t\t\t\t\t\t\t\tidPrefix\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={\n\t\t\t\t\t\t\t\t\t\t\t\t\tonDropdownTriggerKeyDown\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</Composite.Row>\n\t);\n}\n\nexport default function ViewList< Item >( props: ViewListProps< Item > ) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonChangeSelection,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( getItemId( item ) )\n\t);\n\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout?.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout?.primaryField\n\t);\n\tconst viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\tviewFields.includes( field.id ) &&\n\t\t\t! [ view.layout?.primaryField, view.layout?.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = ( item: Item ) =>\n\t\tonChangeSelection( [ getItemId( item ) ] );\n\n\tconst generateCompositeItemIdPrefix = useCallback(\n\t\t( item: Item ) => `${ baseId }-${ getItemId( item ) }`,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst isActiveCompositeItem = useCallback(\n\t\t( item: Item, idToCheck: string ) => {\n\t\t\t// All composite items use the same prefix in their IDs.\n\t\t\treturn idToCheck.startsWith(\n\t\t\t\tgenerateCompositeItemIdPrefix( item )\n\t\t\t);\n\t\t},\n\t\t[ generateCompositeItemIdPrefix ]\n\t);\n\n\t// Controlled state for the active composite item.\n\tconst [ activeCompositeId, setActiveCompositeId ] = useState<\n\t\tstring | null | undefined\n\t>( undefined );\n\n\t// Update the active composite item when the selected item changes.\n\tuseEffect( () => {\n\t\tif ( selectedItem ) {\n\t\t\tsetActiveCompositeId(\n\t\t\t\tgenerateItemWrapperCompositeId(\n\t\t\t\t\tgenerateCompositeItemIdPrefix( selectedItem )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selectedItem, generateCompositeItemIdPrefix ] );\n\n\tconst activeItemIndex = data.findIndex( ( item ) =>\n\t\tisActiveCompositeItem( item, activeCompositeId ?? '' )\n\t);\n\tconst previousActiveItemIndex = usePrevious( activeItemIndex );\n\tconst isActiveIdInList = activeItemIndex !== -1;\n\n\tconst selectCompositeItem = useCallback(\n\t\t(\n\t\t\ttargetIndex: number,\n\t\t\t// Allows invokers to specify a custom function to generate the\n\t\t\t// target composite item ID\n\t\t\tgenerateCompositeId: ( idPrefix: string ) => string\n\t\t) => {\n\t\t\t// Clamping between 0 and data.length - 1 to avoid out of bounds.\n\t\t\tconst clampedIndex = Math.min(\n\t\t\t\tdata.length - 1,\n\t\t\t\tMath.max( 0, targetIndex )\n\t\t\t);\n\t\t\tif ( ! data[ clampedIndex ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst itemIdPrefix = generateCompositeItemIdPrefix(\n\t\t\t\tdata[ clampedIndex ]\n\t\t\t);\n\t\t\tconst targetCompositeItemId = generateCompositeId( itemIdPrefix );\n\n\t\t\tsetActiveCompositeId( targetCompositeItemId );\n\t\t\tdocument.getElementById( targetCompositeItemId )?.focus();\n\t\t},\n\t\t[ data, generateCompositeItemIdPrefix ]\n\t);\n\n\t// Select a new active composite item when the current active item\n\t// is removed from the list.\n\tuseEffect( () => {\n\t\tconst wasActiveIdInList =\n\t\t\tpreviousActiveItemIndex !== undefined &&\n\t\t\tpreviousActiveItemIndex !== -1;\n\t\tif ( ! isActiveIdInList && wasActiveIdInList ) {\n\t\t\t// By picking `previousActiveItemIndex` as the next item index, we are\n\t\t\t// basically picking the item that would have been after the deleted one.\n\t\t\t// If the previously active (and removed) item was the last of the list,\n\t\t\t// we will select the item before it — which is the new last item.\n\t\t\tselectCompositeItem(\n\t\t\t\tpreviousActiveItemIndex,\n\t\t\t\tgenerateItemWrapperCompositeId\n\t\t\t);\n\t\t}\n\t}, [ isActiveIdInList, selectCompositeItem, previousActiveItemIndex ] );\n\n\t// Prevent the default behavior (open dropdown menu) and instead select the\n\t// dropdown menu trigger on the previous/next row.\n\t// https://github.com/ariakit/ariakit/issues/3768\n\tconst onDropdownTriggerKeyDown = useCallback(\n\t\t( event: React.KeyboardEvent< HTMLButtonElement > ) => {\n\t\t\tif ( event.key === 'ArrowDown' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the next row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex + 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( event.key === 'ArrowUp' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the previous row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex - 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ selectCompositeItem, activeItemIndex ]\n\t);\n\n\tconst hasData = data?.length;\n\tif ( ! hasData ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tactiveId={ activeCompositeId }\n\t\t\tsetActiveId={ setActiveCompositeId }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = generateCompositeItemIdPrefix( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tidPrefix={ id }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\tonDropdownTriggerKeyDown={ onDropdownTriggerKeyDown }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_element","_i18n","_icons","_data","_lockUnlock","_dataviewsItemActions","_jsxRuntime","DropdownMenuV2","DropdownMenu","unlock","componentsPrivateApis","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","useRegistry","isModalOpen","setIsModalOpen","useState","compositeItemId","id","label","jsx","role","children","Composite","Item","render","Button","icon","isDestructive","size","onClick","ActionModal","action","items","closeModal","callback","ListItem","actions","isSelected","mediaField","onSelect","primaryField","visibleFields","onDropdownTriggerKeyDown","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","handleHover","type","isHover","useEffect","current","scrollIntoView","behavior","block","inline","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","renderedMediaField","className","renderedPrimaryField","usedActions","length","jsxs","__experimentalHStack","spacing","trigger","moreVertical","__","accessibleWhenDisabled","disabled","onKeyDown","placement","ActionsDropdownMenuGroup","Row","ref","clsx","onMouseEnter","onMouseLeave","justify","alignment","__experimentalVStack","map","field","VisuallyHidden","as","ViewList","props","data","fields","getItemId","isLoading","onChangeSelection","selection","view","baseId","useInstanceId","selectedItem","findLast","includes","find","layout","viewFields","generateCompositeItemIdPrefix","useCallback","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","usePrevious","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","Spinner","activeId","setActiveId"],"sources":["@wordpress/dataviews/src/dataviews-layouts/list/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, usePrevious } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\tSpinner,\n\tVisuallyHidden,\n\tComposite,\n} from '@wordpress/components';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tActionsDropdownMenuGroup,\n\tActionModal,\n} from '../../components/dataviews-item-actions';\nimport type { Action, NormalizedField, ViewListProps } from '../../types';\n\ninterface ListViewItemProps< Item > {\n\tactions: Action< Item >[];\n\tidPrefix: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tonDropdownTriggerKeyDown: React.KeyboardEventHandler< HTMLButtonElement >;\n}\n\nconst { DropdownMenuV2: DropdownMenu } = unlock( componentsPrivateApis );\n\nfunction generateItemWrapperCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-item-wrapper`;\n}\nfunction generatePrimaryActionCompositeId(\n\tidPrefix: string,\n\tprimaryActionId: string\n) {\n\treturn `${ idPrefix }-primary-action-${ primaryActionId }`;\n}\nfunction generateDropdownTriggerCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-dropdown`;\n}\n\nfunction PrimaryActionGridCell< Item >( {\n\tidPrefix,\n\tprimaryAction,\n\titem,\n}: {\n\tidPrefix: string;\n\tprimaryAction: Action< Item >;\n\titem: Item;\n} ) {\n\tconst registry = useRegistry();\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst compositeItemId = generatePrimaryActionCompositeId(\n\t\tidPrefix,\n\t\tprimaryAction.id\n\t);\n\n\tconst label =\n\t\ttypeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] );\n\n\treturn 'RenderModal' in primaryAction ? (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Composite.Item>\n\t\t</div>\n\t) : (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tprimaryAction.callback( [ item ], { registry } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction ListItem< Item >( {\n\tactions,\n\tidPrefix,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tvisibleFields,\n\tonDropdownTriggerKeyDown,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLDivElement >( null );\n\tconst labelId = `${ idPrefix }-label`;\n\tconst descriptionId = `${ idPrefix }-description`;\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst handleHover: React.MouseEventHandler = ( { type } ) => {\n\t\tconst isHover = type === 'mouseenter';\n\t\tsetIsHovered( isHover );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\tconst { primaryAction, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryAction: _primaryActions?.[ 0 ],\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : (\n\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t);\n\n\tconst renderedPrimaryField = primaryField?.render ? (\n\t\t<primaryField.render item={ item } />\n\t) : null;\n\n\tconst usedActions = eligibleActions?.length > 0 && (\n\t\t<HStack spacing={ 3 } className=\"dataviews-view-list__item-actions\">\n\t\t\t{ primaryAction && (\n\t\t\t\t<PrimaryActionGridCell\n\t\t\t\t\tidPrefix={ idPrefix }\n\t\t\t\t\tprimaryAction={ primaryAction }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ttrigger={\n\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\tid={ generateDropdownTriggerCompositeId(\n\t\t\t\t\t\t\t\tidPrefix\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\tonKeyDown={ onDropdownTriggerKeyDown }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t>\n\t\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownMenu>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n\n\treturn (\n\t\t<Composite.Row\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ clsx( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleHover }\n\t\t\tonMouseLeave={ handleHover }\n\t\t>\n\t\t\t<HStack className=\"dataviews-view-list__item-wrapper\" spacing={ 0 }>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\tid={ generateItemWrapperCompositeId( idPrefix ) }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<HStack spacing={ 3 } justify=\"start\" alignment=\"flex-start\">\n\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t\t</div>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__field-wrapper\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack spacing={ 0 }>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ renderedPrimaryField }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ usedActions }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ field.label }\n\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</VStack>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Composite.Row>\n\t);\n}\n\nexport default function ViewList< Item >( props: ViewListProps< Item > ) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonChangeSelection,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( getItemId( item ) )\n\t);\n\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout?.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout?.primaryField\n\t);\n\tconst viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\tviewFields.includes( field.id ) &&\n\t\t\t! [ view.layout?.primaryField, view.layout?.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = ( item: Item ) =>\n\t\tonChangeSelection( [ getItemId( item ) ] );\n\n\tconst generateCompositeItemIdPrefix = useCallback(\n\t\t( item: Item ) => `${ baseId }-${ getItemId( item ) }`,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst isActiveCompositeItem = useCallback(\n\t\t( item: Item, idToCheck: string ) => {\n\t\t\t// All composite items use the same prefix in their IDs.\n\t\t\treturn idToCheck.startsWith(\n\t\t\t\tgenerateCompositeItemIdPrefix( item )\n\t\t\t);\n\t\t},\n\t\t[ generateCompositeItemIdPrefix ]\n\t);\n\n\t// Controlled state for the active composite item.\n\tconst [ activeCompositeId, setActiveCompositeId ] = useState<\n\t\tstring | null | undefined\n\t>( undefined );\n\n\t// Update the active composite item when the selected item changes.\n\tuseEffect( () => {\n\t\tif ( selectedItem ) {\n\t\t\tsetActiveCompositeId(\n\t\t\t\tgenerateItemWrapperCompositeId(\n\t\t\t\t\tgenerateCompositeItemIdPrefix( selectedItem )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selectedItem, generateCompositeItemIdPrefix ] );\n\n\tconst activeItemIndex = data.findIndex( ( item ) =>\n\t\tisActiveCompositeItem( item, activeCompositeId ?? '' )\n\t);\n\tconst previousActiveItemIndex = usePrevious( activeItemIndex );\n\tconst isActiveIdInList = activeItemIndex !== -1;\n\n\tconst selectCompositeItem = useCallback(\n\t\t(\n\t\t\ttargetIndex: number,\n\t\t\t// Allows invokers to specify a custom function to generate the\n\t\t\t// target composite item ID\n\t\t\tgenerateCompositeId: ( idPrefix: string ) => string\n\t\t) => {\n\t\t\t// Clamping between 0 and data.length - 1 to avoid out of bounds.\n\t\t\tconst clampedIndex = Math.min(\n\t\t\t\tdata.length - 1,\n\t\t\t\tMath.max( 0, targetIndex )\n\t\t\t);\n\t\t\tif ( ! data[ clampedIndex ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst itemIdPrefix = generateCompositeItemIdPrefix(\n\t\t\t\tdata[ clampedIndex ]\n\t\t\t);\n\t\t\tconst targetCompositeItemId = generateCompositeId( itemIdPrefix );\n\n\t\t\tsetActiveCompositeId( targetCompositeItemId );\n\t\t\tdocument.getElementById( targetCompositeItemId )?.focus();\n\t\t},\n\t\t[ data, generateCompositeItemIdPrefix ]\n\t);\n\n\t// Select a new active composite item when the current active item\n\t// is removed from the list.\n\tuseEffect( () => {\n\t\tconst wasActiveIdInList =\n\t\t\tpreviousActiveItemIndex !== undefined &&\n\t\t\tpreviousActiveItemIndex !== -1;\n\t\tif ( ! isActiveIdInList && wasActiveIdInList ) {\n\t\t\t// By picking `previousActiveItemIndex` as the next item index, we are\n\t\t\t// basically picking the item that would have been after the deleted one.\n\t\t\t// If the previously active (and removed) item was the last of the list,\n\t\t\t// we will select the item before it — which is the new last item.\n\t\t\tselectCompositeItem(\n\t\t\t\tpreviousActiveItemIndex,\n\t\t\t\tgenerateItemWrapperCompositeId\n\t\t\t);\n\t\t}\n\t}, [ isActiveIdInList, selectCompositeItem, previousActiveItemIndex ] );\n\n\t// Prevent the default behavior (open dropdown menu) and instead select the\n\t// dropdown menu trigger on the previous/next row.\n\t// https://github.com/ariakit/ariakit/issues/3768\n\tconst onDropdownTriggerKeyDown = useCallback(\n\t\t( event: React.KeyboardEvent< HTMLButtonElement > ) => {\n\t\t\tif ( event.key === 'ArrowDown' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the next row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex + 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( event.key === 'ArrowUp' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the previous row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex - 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ selectCompositeItem, activeItemIndex ]\n\t);\n\n\tconst hasData = data?.length;\n\tif ( ! hasData ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tactiveId={ activeCompositeId }\n\t\t\tsetActiveId={ setActiveCompositeId }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = generateCompositeItemIdPrefix( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tidPrefix={ id }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\tonDropdownTriggerKeyDown={ onDropdownTriggerKeyDown }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -91,11 +91,11 @@ function ListItem({
|
|
|
91
91
|
const labelId = `${idPrefix}-label`;
|
|
92
92
|
const descriptionId = `${idPrefix}-description`;
|
|
93
93
|
const [isHovered, setIsHovered] = useState(false);
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
setIsHovered(
|
|
94
|
+
const handleHover = ({
|
|
95
|
+
type
|
|
96
|
+
}) => {
|
|
97
|
+
const isHover = type === 'mouseenter';
|
|
98
|
+
setIsHovered(isHover);
|
|
99
99
|
};
|
|
100
100
|
useEffect(() => {
|
|
101
101
|
if (isSelected) {
|
|
@@ -127,6 +127,35 @@ function ListItem({
|
|
|
127
127
|
const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/_jsx(primaryField.render, {
|
|
128
128
|
item: item
|
|
129
129
|
}) : null;
|
|
130
|
+
const usedActions = eligibleActions?.length > 0 && /*#__PURE__*/_jsxs(HStack, {
|
|
131
|
+
spacing: 3,
|
|
132
|
+
className: "dataviews-view-list__item-actions",
|
|
133
|
+
children: [primaryAction && /*#__PURE__*/_jsx(PrimaryActionGridCell, {
|
|
134
|
+
idPrefix: idPrefix,
|
|
135
|
+
primaryAction: primaryAction,
|
|
136
|
+
item: item
|
|
137
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
138
|
+
role: "gridcell",
|
|
139
|
+
children: /*#__PURE__*/_jsx(DropdownMenu, {
|
|
140
|
+
trigger: /*#__PURE__*/_jsx(Composite.Item, {
|
|
141
|
+
id: generateDropdownTriggerCompositeId(idPrefix),
|
|
142
|
+
render: /*#__PURE__*/_jsx(Button, {
|
|
143
|
+
size: "small",
|
|
144
|
+
icon: moreVertical,
|
|
145
|
+
label: __('Actions'),
|
|
146
|
+
accessibleWhenDisabled: true,
|
|
147
|
+
disabled: !actions.length,
|
|
148
|
+
onKeyDown: onDropdownTriggerKeyDown
|
|
149
|
+
})
|
|
150
|
+
}),
|
|
151
|
+
placement: "bottom-end",
|
|
152
|
+
children: /*#__PURE__*/_jsx(ActionsDropdownMenuGroup, {
|
|
153
|
+
actions: eligibleActions,
|
|
154
|
+
item: item
|
|
155
|
+
})
|
|
156
|
+
})
|
|
157
|
+
})]
|
|
158
|
+
});
|
|
130
159
|
return /*#__PURE__*/_jsx(Composite.Row, {
|
|
131
160
|
ref: itemRef,
|
|
132
161
|
render: /*#__PURE__*/_jsx("li", {}),
|
|
@@ -135,89 +164,55 @@ function ListItem({
|
|
|
135
164
|
'is-selected': isSelected,
|
|
136
165
|
'is-hovered': isHovered
|
|
137
166
|
}),
|
|
138
|
-
onMouseEnter:
|
|
139
|
-
onMouseLeave:
|
|
167
|
+
onMouseEnter: handleHover,
|
|
168
|
+
onMouseLeave: handleHover,
|
|
140
169
|
children: /*#__PURE__*/_jsxs(HStack, {
|
|
141
170
|
className: "dataviews-view-list__item-wrapper",
|
|
142
|
-
alignment: "center",
|
|
143
171
|
spacing: 0,
|
|
144
172
|
children: [/*#__PURE__*/_jsx("div", {
|
|
145
173
|
role: "gridcell",
|
|
146
174
|
children: /*#__PURE__*/_jsx(Composite.Item, {
|
|
147
|
-
render: /*#__PURE__*/_jsx("div", {}),
|
|
148
|
-
role: "button",
|
|
149
175
|
id: generateItemWrapperCompositeId(idPrefix),
|
|
150
176
|
"aria-pressed": isSelected,
|
|
151
177
|
"aria-labelledby": labelId,
|
|
152
178
|
"aria-describedby": descriptionId,
|
|
153
179
|
className: "dataviews-view-list__item",
|
|
154
|
-
onClick: () => onSelect(item)
|
|
155
|
-
children: /*#__PURE__*/_jsxs(HStack, {
|
|
156
|
-
spacing: 3,
|
|
157
|
-
justify: "start",
|
|
158
|
-
alignment: "flex-start",
|
|
159
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
160
|
-
className: "dataviews-view-list__media-wrapper",
|
|
161
|
-
children: renderedMediaField
|
|
162
|
-
}), /*#__PURE__*/_jsxs(VStack, {
|
|
163
|
-
spacing: 1,
|
|
164
|
-
className: "dataviews-view-list__field-wrapper",
|
|
165
|
-
children: [/*#__PURE__*/_jsx("span", {
|
|
166
|
-
className: "dataviews-view-list__primary-field",
|
|
167
|
-
id: labelId,
|
|
168
|
-
children: renderedPrimaryField
|
|
169
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
170
|
-
className: "dataviews-view-list__fields",
|
|
171
|
-
id: descriptionId,
|
|
172
|
-
children: visibleFields.map(field => /*#__PURE__*/_jsxs("div", {
|
|
173
|
-
className: "dataviews-view-list__field",
|
|
174
|
-
children: [/*#__PURE__*/_jsx(VisuallyHidden, {
|
|
175
|
-
as: "span",
|
|
176
|
-
className: "dataviews-view-list__field-label",
|
|
177
|
-
children: field.label
|
|
178
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
179
|
-
className: "dataviews-view-list__field-value",
|
|
180
|
-
children: /*#__PURE__*/_jsx(field.render, {
|
|
181
|
-
item: item
|
|
182
|
-
})
|
|
183
|
-
})]
|
|
184
|
-
}, field.id))
|
|
185
|
-
})]
|
|
186
|
-
})]
|
|
187
|
-
})
|
|
180
|
+
onClick: () => onSelect(item)
|
|
188
181
|
})
|
|
189
|
-
}),
|
|
182
|
+
}), /*#__PURE__*/_jsxs(HStack, {
|
|
190
183
|
spacing: 3,
|
|
191
|
-
justify: "
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
},
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
184
|
+
justify: "start",
|
|
185
|
+
alignment: "flex-start",
|
|
186
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
187
|
+
className: "dataviews-view-list__media-wrapper",
|
|
188
|
+
children: renderedMediaField
|
|
189
|
+
}), /*#__PURE__*/_jsxs(VStack, {
|
|
190
|
+
spacing: 1,
|
|
191
|
+
className: "dataviews-view-list__field-wrapper",
|
|
192
|
+
children: [/*#__PURE__*/_jsxs(HStack, {
|
|
193
|
+
spacing: 0,
|
|
194
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
195
|
+
className: "dataviews-view-list__primary-field",
|
|
196
|
+
id: labelId,
|
|
197
|
+
children: renderedPrimaryField
|
|
198
|
+
}), usedActions]
|
|
199
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
200
|
+
className: "dataviews-view-list__fields",
|
|
201
|
+
id: descriptionId,
|
|
202
|
+
children: visibleFields.map(field => /*#__PURE__*/_jsxs("div", {
|
|
203
|
+
className: "dataviews-view-list__field",
|
|
204
|
+
children: [/*#__PURE__*/_jsx(VisuallyHidden, {
|
|
205
|
+
as: "span",
|
|
206
|
+
className: "dataviews-view-list__field-label",
|
|
207
|
+
children: field.label
|
|
208
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
209
|
+
className: "dataviews-view-list__field-value",
|
|
210
|
+
children: /*#__PURE__*/_jsx(field.render, {
|
|
211
|
+
item: item
|
|
212
|
+
})
|
|
213
|
+
})]
|
|
214
|
+
}, field.id))
|
|
215
|
+
})]
|
|
221
216
|
})]
|
|
222
217
|
})]
|
|
223
218
|
})
|