mirror of
https://github.com/johndoe6345789/workforce-pay-bill-p.git
synced 2026-04-24 13:24:57 +00:00
6.7 KiB
6.7 KiB
WorkForce Pro - Developer Libraries
Overview
This document provides an overview of the expanded custom hook library and UI component library available in the WorkForce Pro application. These libraries provide production-ready, reusable building blocks for rapid feature development.
Custom Hook Library
The application includes 40+ custom React hooks organized into the following categories:
State Management (8 hooks)
useToggle- Boolean state toggleusePrevious- Access previous valueuseLocalStorage- Persist to localStorageuseDisclosure- Modal/drawer stateuseUndo- Undo/redo functionalityuseFormState- Form state with validationuseArray- Array manipulation utilitiesuseMap- Map data structure utilitiesuseSet- Set data structure utilities
Async Operations (5 hooks)
useAsync- Async operation handlinguseDebounce- Debounce valuesuseThrottle- Throttle function callsuseInterval- Declarative intervalsuseTimeout- Declarative timeouts
UI & Interaction (12 hooks)
useMediaQuery- Media query matchinguseIsMobile- Mobile detectionuseWindowSize- Window dimensionsuseScrollPosition- Scroll trackinguseOnClickOutside- Outside click detectionuseIntersectionObserver- Visibility detectionuseKeyboardShortcut- Keyboard shortcutsuseIdleTimer- Idle state detectionuseCopyToClipboard- Copy to clipboarduseClipboard- Enhanced clipboarduseFocusTrap- Focus managementuseCountdown- Countdown timer
Data Management (5 hooks)
useFilter- Array filteringuseSort- Array sortingusePagination- Data paginationuseSelection- Multi-select managementuseTable- Complete table utilities
Forms & Validation (4 hooks)
useFormValidation- Form validationuseWizard- Multi-step wizardsuseMultiStepForm- Advanced multi-step formsuseSteps- Step navigationuseConfirmation- Confirmation dialogs
Browser & Navigation (2 hooks)
useQueryParams- URL query paramsuseDownload- File downloads
Application-Specific (2 hooks)
useNotifications- Notification systemuseSampleData- Sample data initialization
UI Component Library
The application includes 70+ UI components from shadcn v4, plus custom components:
Display Components
EmptyState- Empty state placeholderStatusBadge- Status indicatorsStatCard- Simple metric cardsMetricCard- Advanced metric cards with trendsDataList- Key-value pair listsDataTable- Generic data tablesTimeline- Event timelinesList/ListItem- Structured listsChip- Tag chipsBadge- Status badgesAvatar- User avatarsCard- Content cardsAlert- Alert messages
Layout Components
PageHeader/PageTitle/PageDescription/PageActions- Page headersSection/SectionHeader/SectionTitle/SectionContent- Content sectionsStack- Flex containers with spacingGrid- Responsive grid layoutsSeparator- DividersDivider- Enhanced dividers with labelsScrollArea- Scrollable containersResizable- Resizable panels
Input Components
Input- Text inputsTextarea- Multi-line textSelect- DropdownsCheckbox- CheckboxesRadioGroup- Radio buttonsSwitch- Toggle switchesSlider- Range slidersCalendar- Date pickerSearchInput- Search with clearFileUpload- File upload with drag-dropInputOTP- OTP inputsForm- Form components
Navigation Components
Tabs- Tab navigationBreadcrumb- Breadcrumb navigationPagination- Full paginationQuickPagination- Simple paginationStepper- Multi-step indicatorNavigationMenu- Navigation menusMenubar- Menu barsSidebar- Application sidebar
Modal & Dialog Components
Dialog- Standard dialogsAlertDialog- Confirmation dialogsModal/ModalHeader/ModalBody/ModalFooter- Custom modalsSheet- Side panelsDrawer- Drawer panelsPopover- PopoversHoverCard- Hover cardsTooltip- TooltipsContextMenu- Context menusDropdownMenu- Dropdown menus
Filter & Search Components
FilterBar/FilterGroup- Filter controlsTag/TagGroup- Removable tagsCommand- Command paletteCombobox- Searchable selects
Utility Components
LoadingSpinner- Loading indicatorsLoadingOverlay- Full-screen loadingProgress- Progress barsSkeleton- Loading skeletonsCopyButton- Copy to clipboardCodeBlock- Code displayInfoBox- Info messagesKbd- Keyboard shortcuts displaySortableHeader- Sortable table headers
Chart Components
Chart- Recharts wrapper with themes
Best Practices
When to Use Hooks vs Components
Use Hooks When:
- Managing state or side effects
- Sharing logic between components
- Accessing browser APIs
- Managing complex interactions
Use Components When:
- Creating reusable UI elements
- Defining visual structures
- Composing layouts
- Building forms
Performance Considerations
- Memoization: Most hooks use
useCallbackanduseMemointernally - Lazy Loading: Import only what you need
- State Colocation: Keep state close to where it's used
- Pagination: Use
useTableorusePaginationfor large datasets
Composition Patterns
Hooks Composition:
function useTimesheetForm() {
const { values, errors, handleChange } = useFormState(initialData)
const { isOpen, open, close } = useDisclosure()
const { copy } = useClipboard()
return { values, errors, handleChange, isOpen, open, close, copy }
}
Component Composition:
<PageHeader>
<PageHeaderRow>
<PageTitle>Title</PageTitle>
<PageActions>
<Button>Action</Button>
</PageActions>
</PageHeaderRow>
</PageHeader>
Quick Reference
Most Commonly Used Hooks
useKV- Data persistence (Spark SDK)useTable- Table managementuseDisclosure- Modal stateuseFormState- Form handlinguseDebounce- Search optimization
Most Commonly Used Components
Button- Primary actionsCard- Content containersDialog- Modals and confirmationsInput/Select- Form fieldsTable- Data displayBadge- Status indicatorsSkeleton- Loading states
Documentation
- Hooks: See
/src/hooks/README.mdfor detailed examples - Components: See
/src/components/ui/README.mdfor usage guides - Types: All hooks and components are fully typed with TypeScript
Support
For questions or issues with the libraries, please refer to:
- Individual hook/component files for implementation details
- README files in respective directories
- TypeScript type definitions for API contracts