import type { ToolbarItem } from 'devextreme/ui/data_grid_types' const orderedToolbarItemNames = [ 'searchPanel', 'addRowButton', 'refreshButton', 'openDynamicGridReport', 'workflowReset', 'workflowStart', 'expandAllButton', 'collapseAllButton', 'fitColumns', ] const getToolbarItemPriority = (item: ToolbarItem) => { const name = item.name ?? '' if (name.startsWith('workflowApproval_')) { return orderedToolbarItemNames.indexOf('workflowStart') } if (name.includes('Redis') || name.includes('Hangfire') || name.includes('Swagger')) { return orderedToolbarItemNames.indexOf('openDynamicGridReport') + 0.5 } const priority = orderedToolbarItemNames.indexOf(name) return priority === -1 ? orderedToolbarItemNames.length : priority } export const orderListToolbarItems = (items: ToolbarItem[]) => { return [...items].sort((left, right) => { const priorityDiff = getToolbarItemPriority(left) - getToolbarItemPriority(right) if (priorityDiff !== 0) { return priorityDiff } return items.indexOf(left) - items.indexOf(right) }) }