REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 4.63 KB
Close
//proc/thread-self/root/home/byroehnu/.trash/node_modules11/adminjs/src/frontend/components/routes/bulk-action.tsx
Text
Base64
import React, { useState, useEffect } from 'react' import { Loader } from '@adminjs/design-system' import { useLocation, useParams } from 'react-router' import { BulkActionParams } from '../../../backend/utils/view-helpers/view-helpers.js' import ApiClient from '../../utils/api-client.js' import getBulkActionsFromRecords from '../app/records-table/utils/get-bulk-actions-from-records.js' import { ActionJSON, RecordJSON } from '../../interfaces/index.js' import Wrapper from './utils/wrapper.js' import { ActionHeader, DrawerPortal, BaseActionComponent, ErrorMessageBox, NoResourceError, NoActionError, } from '../app/index.js' import { useTranslation, useNotice, useResource } from '../../hooks/index.js' import allowOverride from '../../hoc/allow-override.js' import { getDataCss } from '../../index.js' type MatchParams = Pick<BulkActionParams, 'actionName' | 'resourceId'> const api = new ApiClient() const BulkAction: React.FC = () => { const params = useParams<MatchParams>() const [records, setRecords] = useState<Array<RecordJSON>>([]) const [loading, setLoading] = useState(false) const [tag, setTag] = useState('') const [filterVisible, setFilterVisible] = useState(false) const { translateMessage } = useTranslation() const addNotice = useNotice() const location = useLocation() const { resourceId, actionName } = params const resource = useResource(resourceId!) const listActionName = 'list' const listAction = resource?.resourceActions.find((r) => r.name === listActionName) const fetchRecords = (): Promise<void> => { const recordIdsString = new URLSearchParams(location.search).get('recordIds') const recordIds = recordIdsString ? recordIdsString.split(',') : [] setLoading(true) return api .bulkAction({ resourceId: resourceId!, recordIds, actionName: actionName!, }) .then((response) => { setLoading(false) setRecords(response.data.records) }) .catch((error) => { setLoading(false) addNotice({ message: 'errorFetchingRecords', type: 'error', resourceId, }) throw error }) } useEffect(() => { fetchRecords() }, [params.resourceId, params.actionName, location.search]) if (!resource) { return <NoResourceError resourceId={resourceId!} /> } if (!records && !loading) { return ( <ErrorMessageBox title="No records"> <p>{translateMessage('noRecordsSelected', resourceId)}</p> </ErrorMessageBox> ) } const action = getBulkActionsFromRecords(records || []).find((r) => r.name === actionName) if (loading) { const actionFromResource = resource.actions.find((r) => r.name === actionName) return actionFromResource?.showInDrawer ? ( <DrawerPortal> <Loader /> </DrawerPortal> ) : ( <Loader /> ) } if (!action) { return <NoActionError resourceId={resourceId!} actionName={actionName!} /> } const routeWrapperCss = getDataCss(resource.id, action.actionType, action.name, 'route-wrapper') const routeActionCss = getDataCss(resource.id, action.actionType, action.name, 'route') if (action.showInDrawer) { if (!listAction) { return ( <DrawerPortal width={action.containerWidth} data-css={routeActionCss}> <BaseActionComponent action={action as ActionJSON} resource={resource} records={records} /> </DrawerPortal> ) } const toggleFilter = listAction.showFilter ? (): void => setFilterVisible(!filterVisible) : undefined return ( <> <DrawerPortal width={action.containerWidth} data-css={routeActionCss}> <BaseActionComponent action={action as ActionJSON} resource={resource} records={records} setTag={setTag} /> </DrawerPortal> <Wrapper width={listAction.containerWidth} data-css={routeWrapperCss}> <ActionHeader resource={resource} action={listAction} tag={tag} toggleFilter={toggleFilter} /> <BaseActionComponent action={listAction} resource={resource} setTag={setTag} /> </Wrapper> </> ) } return ( <Wrapper width={action.containerWidth} data-css={routeWrapperCss}> {!action?.showInDrawer ? <ActionHeader resource={resource} action={action} tag={tag} /> : ''} <BaseActionComponent action={action as ActionJSON} resource={resource} records={records} setTag={setTag} /> </Wrapper> ) } export default allowOverride(BulkAction, 'BulkActionRoute')
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 8
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
utils
DIR
-
drwxr-xr-x
2026-02-28 00:32:50
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
bulk-action.tsx
4.63 KB
lrw-r--r--
2026-02-28 00:32:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dashboard.tsx
1.37 KB
lrw-r--r--
2026-02-28 00:32:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
index.ts
363 B
lrw-r--r--
2026-02-28 00:32:28
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
page.tsx
1.60 KB
lrw-r--r--
2026-02-28 00:32:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
record-action.spec.tsx
2.12 KB
lrw-r--r--
2026-02-28 00:32:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
record-action.tsx
5.85 KB
lrw-r--r--
2026-02-28 00:32:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
resource-action.tsx
3.47 KB
lrw-r--r--
2026-02-28 00:32:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
resource.tsx
3.26 KB
lrw-r--r--
2026-02-28 00:32:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).