.cursor/skills/nazim-filters/SKILL.md
Enforces filter panel and filter state patterns for Nazim list and report pages. Use when adding search, dropdowns, date ranges, or filter state. Covers FilterPanel, filter state, query integration.
npx skillsauth add AHMADJAN-New/nazim-web nazim-filtersInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Filter panels and filter state follow consistent patterns for list and report pages.
Use FilterPanel from @/components/layout/FilterPanel:
<FilterPanel
title={t('filters.title')}
defaultOpenDesktop={true} // Open on desktop
defaultOpenMobile={false} // Collapsed on mobile
footer={/* optional */}
>
{/* Filter content */}
</FilterPanel>
Collapsible internallyconst [filters, setFilters] = useState({
search: '',
status: '',
schoolId: '',
classId: '',
dateFrom: '',
dateTo: '',
page: 1,
perPage: 25,
});
const handleFilterChange = (key: string, value: string | number) => {
setFilters(prev => ({ ...prev, [key]: value, page: 1 }));
};
<Input placeholder={t('common.search')} value={filters.search} onChange={...} /><Select value={filters.status} onValueChange={v => handleFilterChange('status', v)}> with SelectItem for each optionuseSchools, useClassesCalendarDatePicker for dateFrom and dateToqueryKey: ['resource', profile?.organization_id, filters]apiClient.resource.list({ ...filters, organization_id, school_id })page to 1 when filters changetools
Toast notifications for Nazim. Use when showing success/error/info messages. ALWAYS use showToast from @/lib/toast with translation keys; never toast from sonner directly. RTL positioning is automatic.
tools
Enforces status badge patterns for Nazim UI. Use when displaying status in tables, cards, or dialogs. Covers Badge variants, semantic colors, statusBadgeVariant, statusOptions with color.
development
Enforces mobile-first responsive patterns for Nazim UI. Use when building pages, tables, forms, charts, or buttons. Covers page container, FilterPanel, tabs, grids, tables, charts, cards, buttons.
development
PDF and Excel report generation for Nazim. Use when adding or changing reports. Backend uses ReportService and ReportConfig; frontend uses useServerReport. Covers branding, DateConversionService, RTL, acceptance criteria.