@snack-uikit/toolbar 0.12.2 → 0.12.3-preview-a879b9ed.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,18 +13,6 @@ Toolbar
13
13
  ### Props
14
14
  | name | type | default value | description |
15
15
  |------|------|---------------|-------------|
16
- | search | `{ value: string; onChange(value: string): void; onSubmit?(value: string): void; placeholder?: string; loading?: boolean; }` | - | Параметры отвечают за строку поиска <br> <strong>value</strong>: Значение строки поиска <br> <strong>onChange</strong>: Колбэк смены значения <br> <strong>onSubmit</strong>: Колбэк на подтверждение поиска по строке <strong>placeholder</strong>: Плейсхолдер <br> <strong>loading</strong>: Состояние загрузки <br> |
17
- | className | `string` | - | Класснейм |
18
- | outline | `boolean` | - | Внешний бордер |
19
- | onCheck | `() => void` | - | Колбек смены значения чекбокса |
20
- | checked | `boolean` | - | Значение чекбокса |
21
- | indeterminate | `boolean` | - | Состояние частичного выбора |
22
- | selectionMode | enum SelectionMode: `"single"`, `"multiple"` | 'multiple' | Режим выбора |
23
- | bulkActions | `BulkAction[]` | - | Список массовых действий |
24
- | onRefresh | `() => void` | - | Колбек обновления |
25
- | after | `ReactNode` | - | Дополнительный слот в конце тулбара |
26
- | moreActions | `Action[]` | - | Элементы выпадающего списка кнопки с действиями |
27
- | filterRow | `FilterRow<TState>` | - | |
28
16
 
29
17
 
30
18
  [//]: DOCUMENTATION_SECTION_END
@@ -3,5 +3,6 @@ import { WithSupportProps } from '@snack-uikit/utils';
3
3
  import { CheckedToolbarProps, DefaultToolbarProps, FilterRow } from './types';
4
4
  export type ToolbarProps<TState extends FiltersState = Record<string, unknown>> = WithSupportProps<DefaultToolbarProps | CheckedToolbarProps> & {
5
5
  filterRow?: FilterRow<TState>;
6
+ filtersDefaultOpen?: boolean;
6
7
  };
7
- export declare function Toolbar<TState extends FiltersState = Record<string, unknown>>({ className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, ...rest }: ToolbarProps<TState>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function Toolbar<TState extends FiltersState = Record<string, unknown>>({ className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, filtersDefaultOpen, ...rest }: ToolbarProps<TState>): import("react/jsx-runtime").JSX.Element;
@@ -38,9 +38,10 @@ function Toolbar(_a) {
38
38
  moreActions,
39
39
  onRefresh,
40
40
  search,
41
- filterRow: filterRowProps
41
+ filterRow: filterRowProps,
42
+ filtersDefaultOpen
42
43
  } = _a,
43
- rest = __rest(_a, ["className", "after", "outline", "moreActions", "onRefresh", "search", "filterRow"]);
44
+ rest = __rest(_a, ["className", "after", "outline", "moreActions", "onRefresh", "search", "filterRow", "filtersDefaultOpen"]);
44
45
  const needsBulkActions = (0, helpers_1.isBulkActionsProps)(rest);
45
46
  const hasLeftSideElements = Boolean(needsBulkActions || onRefresh);
46
47
  const resizingContainerRef = (0, react_1.useRef)(null);
@@ -48,7 +49,8 @@ function Toolbar(_a) {
48
49
  filterButton,
49
50
  filterRow
50
51
  } = (0, hooks_1.useFilters)({
51
- filterRow: filterRowProps
52
+ filterRow: filterRowProps,
53
+ defaultOpen: filtersDefaultOpen
52
54
  });
53
55
  return (0, jsx_runtime_1.jsxs)("div", Object.assign({
54
56
  className: styles_module_scss_1.default.containerWrapper
@@ -3,10 +3,11 @@ import { FilterButtonProps } from '../../helperComponents';
3
3
  import { FilterRow } from './types';
4
4
  type UseFiltersProps<TState extends FiltersState> = {
5
5
  filterRow?: FilterRow<TState>;
6
+ defaultOpen?: boolean;
6
7
  };
7
8
  type UseFiltersReturnType<TState extends FiltersState> = {
8
9
  filterButton?: FilterButtonProps;
9
10
  filterRow?: FilterRow<TState>;
10
11
  };
11
- export declare function useFilters<TState extends FiltersState>({ filterRow, }: UseFiltersProps<TState>): UseFiltersReturnType<TState>;
12
+ export declare function useFilters<TState extends FiltersState>({ filterRow, defaultOpen, }: UseFiltersProps<TState>): UseFiltersReturnType<TState>;
12
13
  export {};
@@ -16,10 +16,11 @@ const chips_1 = require("@snack-uikit/chips");
16
16
  const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
17
17
  function useFilters(_ref) {
18
18
  let {
19
- filterRow
19
+ filterRow,
20
+ defaultOpen = false
20
21
  } = _ref;
21
22
  var _a;
22
- const [filtersOpen, setFiltersOpen] = (0, uncontrollable_1.useUncontrolledProp)(filterRow === null || filterRow === void 0 ? void 0 : filterRow.open, false, newValue => {
23
+ const [filtersOpen, setFiltersOpen] = (0, uncontrollable_1.useUncontrolledProp)(filterRow === null || filterRow === void 0 ? void 0 : filterRow.open, defaultOpen, newValue => {
23
24
  var _a;
24
25
  const result = typeof newValue === 'function' ? newValue(filtersOpen) : newValue;
25
26
  (_a = filterRow === null || filterRow === void 0 ? void 0 : filterRow.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(filterRow, result);
@@ -3,5 +3,6 @@ import { WithSupportProps } from '@snack-uikit/utils';
3
3
  import { CheckedToolbarProps, DefaultToolbarProps, FilterRow } from './types';
4
4
  export type ToolbarProps<TState extends FiltersState = Record<string, unknown>> = WithSupportProps<DefaultToolbarProps | CheckedToolbarProps> & {
5
5
  filterRow?: FilterRow<TState>;
6
+ filtersDefaultOpen?: boolean;
6
7
  };
7
- export declare function Toolbar<TState extends FiltersState = Record<string, unknown>>({ className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, ...rest }: ToolbarProps<TState>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function Toolbar<TState extends FiltersState = Record<string, unknown>>({ className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, filtersDefaultOpen, ...rest }: ToolbarProps<TState>): import("react/jsx-runtime").JSX.Element;
@@ -23,10 +23,13 @@ import { extractBulkActionsProps, isBulkActionsProps } from './helpers';
23
23
  import { useFilters } from './hooks';
24
24
  import styles from './styles.module.css';
25
25
  export function Toolbar(_a) {
26
- var { className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps } = _a, rest = __rest(_a, ["className", "after", "outline", "moreActions", "onRefresh", "search", "filterRow"]);
26
+ var { className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, filtersDefaultOpen } = _a, rest = __rest(_a, ["className", "after", "outline", "moreActions", "onRefresh", "search", "filterRow", "filtersDefaultOpen"]);
27
27
  const needsBulkActions = isBulkActionsProps(rest);
28
28
  const hasLeftSideElements = Boolean(needsBulkActions || onRefresh);
29
29
  const resizingContainerRef = useRef(null);
30
- const { filterButton, filterRow } = useFilters({ filterRow: filterRowProps });
30
+ const { filterButton, filterRow } = useFilters({
31
+ filterRow: filterRowProps,
32
+ defaultOpen: filtersDefaultOpen,
33
+ });
31
34
  return (_jsxs("div", Object.assign({ className: styles.containerWrapper }, extractSupportProps(rest), { children: [_jsxs("div", { className: cn(styles.container, className), "data-outline": outline || undefined, ref: resizingContainerRef, children: [hasLeftSideElements && (_jsxs("div", { className: styles.beforeSearch, children: [needsBulkActions && (_jsxs(_Fragment, { children: [_jsx(BulkActions, Object.assign({}, extractBulkActionsProps(rest), { resizingContainerRef: resizingContainerRef })), _jsx(Separator, {})] })), onRefresh && (_jsxs(_Fragment, { children: [_jsx(ButtonFunction, { icon: _jsx(UpdateSVG, {}), size: 'm', className: styles.updateButton, onClick: onRefresh, "data-test-id": TEST_IDS.refreshButton }), _jsx(Separator, {})] }))] })), search && _jsx(SearchPrivate, Object.assign({}, search, { className: styles.search, size: 'm', "data-test-id": TEST_IDS.search })), (moreActions || after || filterButton) && (_jsxs("div", { className: styles.flexRow, "data-align-right": (!search && !hasLeftSideElements) || undefined, children: [after && (_jsxs(_Fragment, { children: [(search || hasLeftSideElements) && _jsx(Separator, {}), _jsx("div", { "data-test-id": TEST_IDS.after, className: styles.actions, children: after })] })), (moreActions || filterButton) && _jsx(Separator, {}), filterButton && _jsx(FilterButton, Object.assign({}, filterButton)), moreActions && _jsx(MoreActions, { moreActions: moreActions })] }))] }), filterRow && _jsx(ChipChoiceRow, Object.assign({}, filterRow, { size: 'xs', "data-test-id": TEST_IDS.filterRow }))] })));
32
35
  }
@@ -3,10 +3,11 @@ import { FilterButtonProps } from '../../helperComponents';
3
3
  import { FilterRow } from './types';
4
4
  type UseFiltersProps<TState extends FiltersState> = {
5
5
  filterRow?: FilterRow<TState>;
6
+ defaultOpen?: boolean;
6
7
  };
7
8
  type UseFiltersReturnType<TState extends FiltersState> = {
8
9
  filterButton?: FilterButtonProps;
9
10
  filterRow?: FilterRow<TState>;
10
11
  };
11
- export declare function useFilters<TState extends FiltersState>({ filterRow, }: UseFiltersProps<TState>): UseFiltersReturnType<TState>;
12
+ export declare function useFilters<TState extends FiltersState>({ filterRow, defaultOpen, }: UseFiltersProps<TState>): UseFiltersReturnType<TState>;
12
13
  export {};
@@ -3,9 +3,9 @@ import { useMemo } from 'react';
3
3
  import { useUncontrolledProp } from 'uncontrollable';
4
4
  import { hasFilterBeenApplied } from '@snack-uikit/chips';
5
5
  import styles from './styles.module.css';
6
- export function useFilters({ filterRow, }) {
6
+ export function useFilters({ filterRow, defaultOpen = false, }) {
7
7
  var _a;
8
- const [filtersOpen, setFiltersOpen] = useUncontrolledProp(filterRow === null || filterRow === void 0 ? void 0 : filterRow.open, false, newValue => {
8
+ const [filtersOpen, setFiltersOpen] = useUncontrolledProp(filterRow === null || filterRow === void 0 ? void 0 : filterRow.open, defaultOpen, newValue => {
9
9
  var _a;
10
10
  const result = typeof newValue === 'function' ? newValue(filtersOpen) : newValue;
11
11
  (_a = filterRow === null || filterRow === void 0 ? void 0 : filterRow.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(filterRow, result);
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "title": "Toolbar",
7
- "version": "0.12.2",
7
+ "version": "0.12.3-preview-a879b9ed.0",
8
8
  "sideEffects": [
9
9
  "*.css",
10
10
  "*.woff",
@@ -51,5 +51,5 @@
51
51
  "peerDependencies": {
52
52
  "@snack-uikit/locale": "*"
53
53
  },
54
- "gitHead": "83190fc4f4d6dac84d3801ac3fe18c73354e1029"
54
+ "gitHead": "fe6e582495064f88a840c966c0cbd3381c2482a3"
55
55
  }
@@ -18,6 +18,7 @@ export type ToolbarProps<TState extends FiltersState = Record<string, unknown>>
18
18
  DefaultToolbarProps | CheckedToolbarProps
19
19
  > & {
20
20
  filterRow?: FilterRow<TState>;
21
+ filtersDefaultOpen?: boolean;
21
22
  };
22
23
 
23
24
  export function Toolbar<TState extends FiltersState = Record<string, unknown>>({
@@ -28,13 +29,17 @@ export function Toolbar<TState extends FiltersState = Record<string, unknown>>({
28
29
  onRefresh,
29
30
  search,
30
31
  filterRow: filterRowProps,
32
+ filtersDefaultOpen,
31
33
  ...rest
32
34
  }: ToolbarProps<TState>) {
33
35
  const needsBulkActions = isBulkActionsProps(rest);
34
36
  const hasLeftSideElements = Boolean(needsBulkActions || onRefresh);
35
37
  const resizingContainerRef = useRef<HTMLDivElement>(null);
36
38
 
37
- const { filterButton, filterRow } = useFilters<TState>({ filterRow: filterRowProps });
39
+ const { filterButton, filterRow } = useFilters<TState>({
40
+ filterRow: filterRowProps,
41
+ defaultOpen: filtersDefaultOpen,
42
+ });
38
43
 
39
44
  return (
40
45
  <div className={styles.containerWrapper} {...extractSupportProps(rest)}>
@@ -10,6 +10,7 @@ import { FilterRow } from './types';
10
10
 
11
11
  type UseFiltersProps<TState extends FiltersState> = {
12
12
  filterRow?: FilterRow<TState>;
13
+ defaultOpen?: boolean;
13
14
  };
14
15
 
15
16
  type UseFiltersReturnType<TState extends FiltersState> = {
@@ -19,8 +20,9 @@ type UseFiltersReturnType<TState extends FiltersState> = {
19
20
 
20
21
  export function useFilters<TState extends FiltersState>({
21
22
  filterRow,
23
+ defaultOpen = false,
22
24
  }: UseFiltersProps<TState>): UseFiltersReturnType<TState> {
23
- const [filtersOpen, setFiltersOpen] = useUncontrolledProp<boolean>(filterRow?.open, false, newValue => {
25
+ const [filtersOpen, setFiltersOpen] = useUncontrolledProp<boolean>(filterRow?.open, defaultOpen, newValue => {
24
26
  const result = typeof newValue === 'function' ? newValue(filtersOpen) : newValue;
25
27
  filterRow?.onOpenChange?.(result);
26
28
  });