双方向同期で無限のリレンダーループを防ぐ
- 更新ソースを追跡する ref を追加 (tab 対 filter ドロップダウン) - 他のソースから発信したときに更新をスキップする - React のエラー #185 を引き起こす円の更新を防ぐ - setTimeout を使用して、状態の更新が完了した後にフラグをリセットします
ステータスタブとフィルタドロップダウン間で双方向同期を追加
- ステータスタブが â † の更新フィルタのドロップダウン (すでに存在) を変更する場合 - フィルタのドロップダウンが â†' がアクティブなステータスタブを更新する場合(新しい) - 新しい useEffects の statusFilterValue だけによって円の更新を防ぐ - フィルターがクリアされてい...
AG Grid フィルターを使用する代わりに filteredRowData を手動で適用します
- すべてのフィルタロジックを filteredRowData useMemo に移動する - データをAG Gridに渡す前にフィルターを手動で適用して下さい - データを直接フィルタリングするため、AG Grid setFilterModel 呼び出しを削除します。 - フィルタは、ドロップダウン値が変更されるとす...
コンソールログとリフレッシュセルを追加して、フィルタが適用されるようにします
- デバッグフィルタモデルに console.log を追加 - onFilterChanged の後にリフレッシュセルを強制再レンダーに呼び出します - フィルターが正しく適用されるかどうかを識別するのに役立ちます
空のフィルターを適切にクリアし、フィルタモデルの更新を正しく保証
- 値が空いているときにモデルからフィルタを明示的に削除する - トリムフィルタはホワイトスペースを処理する値 - 他のフィルターを保存するために、現在のフィルタモデルを最初に取得 - すべてのフィルタがクリアされている場合、フィルタモデルをnullに設定する - これは、フィルタが適切に適用され、クリアされるようにし...
ヘッダーの下の位置のフィルタ ラインはおよびフィルターを適用する保障します
- フィルター行を上に移動します: 上ではなく48px(下ヘッダー):0 - PaddingTop:48pxをAgGridReactにフィルター行のアカウントに追加する - floatingFiltersHeight を 0 に設定します。 - setFilterModel の後に onFilterChanged() ...
列とフィルタ行を合わせ、ステータスフィルタを修正
- フローティングフィルタスペース(48px高さ)でフィルタ行を絶対に位置します。 - カラムの幅を動的に一致させるためにsyncFilterRowWidths関数を追加 - グリッドの準備と列のサイズ変更イベントの同期幅 - ステータスフィルタを修正し、ステータスとサブステータスフィールドの両方に適用 - 親のステー...
AG Grid フローティング フィルターをカスタム フィルター行に置き換える
- すべての floatingFilterComponent リファレンスを columnDefs から削除する - floatingFilter:すべての列で false を設定する - 完全な制御とグリッド上のカスタムフィルタ行を作成 - すべてのフィルタ値(leadId、連絡先、ステータス、subStatus、ベ...
Ref を使用してフィルター値を保存し、AG Grid をリセットするのを防ぐ
- 値に現在の値を格納する再レンダーを渡る永続者を参照して下さい - isUserChangeRef を使用して、ユーザ変更をオーバーライドし、同期効果を防ぐ - マウントのフィルタインスタンスから初期モデルを読み込む - 常に値を使用してリセットを防ぐために値を選択します。 - これは最終的にフィルターリセットの問題...
OnFloatingFilterChanged コールバックを削除し、フィルタアイコンを非表示にCSSを改善
- 値のリセットからAG Gridを防ぐためonFloatingFilterChangedコールバックを登録しないでください - フィルターメニューボタンとアイコンを非表示にするための包括的なCSSルールを追加 - アイコンが隠されていることを確認するために複数のセレクタのバリエーションを追加 - これは、フィルタのリ...
正しいドロップダウンフローティング パラメータをフィルタリングし、ステータスフィルターに statusFilterValue を追加
CustomParams を使用して filterParams にアクセスし、statusFilterValue を params に追加します
Make Status filter controlled and sync with status tabs
- Added statusFilterValue state to control Status filter dropdown - Status filter now syncs with activeStatusTab when tabs are clicked - Filter value is now con...
Prevent header refresh and maintain filter value with ref
- Use currentValueRef to track and persist filter value - Remove refreshHeader() call that was causing header to hide/reappear - Only update value from callback...
Properly track filter updates to prevent Status filter reset
- Use isUpdatingRef flag to track when we're making changes - Only allow parent model changes to update value if we're not updating - Initialize filter value fr...
Prevent filter reset with no-op callback and hide icons with menuTabs
- Register no-op onFloatingFilterChanged callback to prevent AG Grid from resetting filter value - Use menuTabs: [] instead of suppressHeaderMenuButton to hide ...
New approach for Status filter and filter icons
- Removed onFloatingFilterChanged callback to prevent circular updates - Store filter instance in ref and update directly - Added global CSS rules in globals.cs...
Prevent Status filter reset with ref flag and add suppressHeaderMenuButton
- Added suppressHeaderMenuButton to all columns that should hide filter icons - Improved isInternalChangeRef timing to prevent circular updates - Enhanced CSS s...
Prevent Status filter reset and improve filter icon hiding
- Added isInternalChangeRef to prevent circular updates in Status and SubStatus filters - Updated CSS selectors to better hide filter menu buttons and icons - F...
Remove extra Box wrapper that was breaking grid display
- Removed nested Box wrapper that was preventing grid from rendering - Moved CSS styles directly to the outer Box wrapper - Grid should now display leads correc...
Remove dependency from Sub Status filter useEffect to fix reactivity
Improve Sub Status filter reactivity and hide filter icons with CSS
- Remove getStatusFilterValue dependency from useEffect to prevent stale closures - Add CSS rules to hide filter menu button icons for Lead ID, Contact, Status,...
Properly enable Sub Status dropdown and remove all filter icons
- Add hasStatusFilter state to SubStatusFloatingFilter to track status filter changes - Add filterChanged event listener to immediately detect when Status filte...
Properly enable Sub Status dropdown and remove filter icons
- Fix Sub Status dropdown to be enabled when Status filter is selected (removed options.length check from disabled condition) - Add menuTabs: [] to Lead ID, Con...
Enable Sub Status dropdown when Status is selected and remove filter icons
- Fix Sub Status dropdown to be enabled when a Status filter is selected - Remove filter icons (suppressHeaderMenuButton) from Lead ID, Contact, Status, Sub Sta...
Improve filter behavior and styling
- Sub Status dropdown now only shows sub-statuses for selected Status filter - Sub Status dropdown is disabled when no Status is selected - Auto-set Status filt...
Improve dropdown filter styling and functionality
- Align all dropdown filters to the left with 5px padding above - Add StatusFloatingFilter component with icons in dropdown menu items - Icons appear to the lef...
Add Status column with icons and dynamic Sub Status filter
- Add Status column before Sub Status with icons (Fresh, Reckoning, Farm, Grim, Void) - Create StatusRenderer component that displays status with appropriate ic...
Resolve TypeScript type errors in DropdownFloatingFilter
- Change ExtendedParams to use intersection type instead of extending IFloatingFilterParams - Use type assertion for parentFilterInstance callback parameter - M...
Resolve ESLint errors in DropdownFloatingFilter component
- Add displayName to FloatingFilterComponent - Remove unused ref parameter - Replace any types with proper TypeScript interfaces - Add ExtendedParams interface ...
Add dropdown floating filters and set Lead ID width to 300px
- Create custom DropdownFloatingFilter component for Sub Status, Vendor, Product, Source, and Agent columns - Set Lead ID column width to 300px (was 120px) - Ad...
Change filter values from functions to arrays for dropdown display
- Change filterParams values from functions to direct arrays - AG Grid set filters require values as arrays, not functions - This should fix dropdown filters no...
Improve pinned rows alignment and add dropdown filters
- Change Lead ID padding from 50px to 45px in pinned rows - Center align score cells in pinned rows to match main grid - Add dropdown filters (agSetColumnFilter...
Apply 50px padding only to Lead ID column in pinned rows - Change CSS selector from first-of-type to col-id=leadID to target only Lead ID column - Prevents padding from being applied to Contact and Actions columns - Pinned rows are already integrated into main datagrid via pinnedTopRowData
Align pinned rows with main list cells
- Add 50px padding-left to first cell (Lead ID) in pinned rows for account icon alignment - Compensate for 4px red border by moving pinned row left with marginL...
Replace any type with proper LeadWithAccount interface
- Create LeadWithAccount interface extending Lead with optional accountId - Replace any type assertion with LeadWithAccount type - Fixes ESLint error: Unexpecte...
Add account association icon to Lead ID column
- Add AccountCircle icon (filled) for leads associated with accounts - Add AccountCircleOutlined icon (outlined) for leads not associated with accounts - Icons ...
Remove incorrect useMemo wrapper from ReportsPane component
- Remove erroneous }, []); closing bracket that was causing syntax error - ReportsPane is a regular function component, not wrapped in useMemo
Integrate reports into lead view pane
- Load reports directly into lead view pane instead of separate page - Create ReportsPane component with all 8 reports fully built out - Switch between ReportsP...