mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-29 18:13:47 +00:00
First and largest step in the AdminBulkActions decomp. Two new files under src/components/admin/bulkActions/: - DropdownSelect.tsx (47 lines): the small native-<select> wrapper used both by the filter row and the ActionModal's tariff/promo picker. Exports DropdownSelect + the shared ChevronDownIcon + DropdownOption type. - ActionModal.tsx (712 lines): the per-action configuration + execution modal. Wraps three internal views — ProgressView (live SSE log + counters while a job streams), ErrorDetails (collapsible per-row error list after completion), and the per-action form (days / tariff / traffic / balance / promo-group / grant / set-devices / delete-* confirmations). Exports the ModalState and ProgressState types alongside. Self-contained: parent feeds modal state + reference data (tariffs, promo groups, users for active-paid counting) and receives onExecute(params) when the operator confirms. No queries or mutations here — execution flow stays in the parent's handleExecuteAction. Parent keeps a local CheckIcon (still used by MultiSelectDropdown checkboxes + the user-table column defs) and re-imports ChevronDownIcon / DropdownOption from the new file. AdminBulkActions.tsx: 2539 → 1796 lines (-743).