mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-02 16:48:50 +01:00
* feat: show column sort direction in all headers for my files datatable * fix: refactor SortFilterHeader to use DropdownPopup so that keyboard nav and portaling actually work * feat: visually indicate when a column filter is active * chore: remove debug visuals * chore: fix types and import order * chore: add missing subItems prop to MenuItemProps interface * feat: add arrow indicator for name column * fix: page counter no longer shows 1/0 when no results * feat: keep my files datatable size consistent to avoid issues with sizing of dropdown filter menus which made it difficult to see options * fix: refactor filter cols button in my files datatable to use ariakit dropdown so keyboard nav works * feat: better datatable column spacing following tanstack docs * chore: ESlint complaints * fix: localize string literals * fix: move localize hook call inside the function components * feat: add tooltip label for select all * feat: better styling on floating label for file filter input * feat: focus outline on search input * feat: add search icon * feat: add aria-sort props to header sort buttons * feat: better screen reader labels to include information visually conveyed by filter and sort icons * feat: add descriptive tooltips for headers for better accessibility for cognitive impairments * chore: import orders * feat: add more aria states for better feedback of filtered and sorted columns * chore: add translation key
37 lines
920 B
TypeScript
37 lines
920 B
TypeScript
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
export type RenderProp<
|
|
P = React.HTMLAttributes<any> & {
|
|
ref?: React.Ref<any>;
|
|
},
|
|
> = (props: P) => React.ReactNode;
|
|
|
|
export interface MenuItemProps {
|
|
id?: string;
|
|
label?: string;
|
|
onClick?: (e: React.MouseEvent<HTMLButtonElement | HTMLDivElement>) => void;
|
|
icon?: React.ReactNode;
|
|
kbd?: string;
|
|
show?: boolean;
|
|
disabled?: boolean;
|
|
separate?: boolean;
|
|
hideOnClick?: boolean;
|
|
dialog?: React.ReactElement;
|
|
ariaHasPopup?:
|
|
| boolean
|
|
| 'dialog'
|
|
| 'menu'
|
|
| 'true'
|
|
| 'false'
|
|
| 'listbox'
|
|
| 'tree'
|
|
| 'grid'
|
|
| undefined;
|
|
ariaControls?: string;
|
|
ref?: React.Ref<any>;
|
|
className?: string;
|
|
render?:
|
|
| RenderProp<React.HTMLAttributes<any> & { ref?: React.Ref<any> | undefined }>
|
|
| React.ReactElement<any, string | React.JSXElementConstructor<any>>
|
|
| undefined;
|
|
subItems?: MenuItemProps[];
|
|
}
|