@gravity-ui/querieskit 1.6.0 → 1.7.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 +34 -3
- package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.js +3 -1
- package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.js.map +1 -1
- package/build/cjs/modules/TutorialRow/TutorialRow.d.ts +3 -1
- package/build/cjs/modules/TutorialRow/TutorialRow.js +3 -1
- package/build/cjs/modules/TutorialRow/TutorialRow.js.map +1 -1
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.d.ts +3 -1
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js +3 -1
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js.map +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.d.ts +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js +6 -3
- package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.d.ts +7 -2
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +13 -3
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.stories.d.ts +5 -0
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.stories.js +244 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.stories.js.map +1 -1
- package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.js +3 -1
- package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.js.map +1 -1
- package/build/esm/modules/TutorialRow/TutorialRow.d.ts +3 -1
- package/build/esm/modules/TutorialRow/TutorialRow.js +3 -1
- package/build/esm/modules/TutorialRow/TutorialRow.js.map +1 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.d.ts +3 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js +3 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js.map +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialRowContent.d.ts +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js +6 -3
- package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.d.ts +7 -2
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +13 -3
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.d.ts +5 -0
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.js +244 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,16 +5,19 @@ import { TutorialSearchRow } from "../../modules/TutorialSearchRow";
|
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
export var TutorialRowContent = function TutorialRowContent(_ref) {
|
|
7
7
|
var item = _ref.item,
|
|
8
|
-
variant = _ref.variant
|
|
8
|
+
variant = _ref.variant,
|
|
9
|
+
renderLink = _ref.renderLink;
|
|
9
10
|
if ('header' in item) {
|
|
10
11
|
return /*#__PURE__*/_jsx(HistoryGroupHeader, {
|
|
11
12
|
title: item.header
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
15
|
return variant === 'search' ? /*#__PURE__*/_jsx(TutorialSearchRow, {
|
|
15
|
-
item: item
|
|
16
|
+
item: item,
|
|
17
|
+
renderLink: renderLink
|
|
16
18
|
}) : /*#__PURE__*/_jsx(TutorialRow, {
|
|
17
|
-
item: item
|
|
19
|
+
item: item,
|
|
20
|
+
renderLink: renderLink
|
|
18
21
|
});
|
|
19
22
|
};
|
|
20
23
|
// #sourceMappingURL=TutorialRowContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","HistoryGroupHeader","TutorialRow","TutorialSearchRow","jsx","_jsx","TutorialRowContent","_ref","item","variant","title","header"],"sources":["TutorialRowContent.tsx"],"sourcesContent":["import React from 'react';\nimport type {QueryListRowRenderData} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {HistoryGroupHeader} from '../../components/HistoryGroupHeader';\nimport {TutorialRow} from '../../modules/TutorialRow';\nimport {TutorialSearchRow} from '../../modules/TutorialSearchRow';\n\nexport const TutorialRowContent = <T extends TutorialHistoryRow>({\n item,\n variant,\n}: QueryListRowRenderData<T>) => {\n if ('header' in item) {\n return <HistoryGroupHeader title={item.header} />;\n }\n\n return variant === 'search' ? <TutorialSearchRow item={item}
|
|
1
|
+
{"version":3,"names":["React","HistoryGroupHeader","TutorialRow","TutorialSearchRow","jsx","_jsx","TutorialRowContent","_ref","item","variant","renderLink","title","header"],"sources":["TutorialRowContent.tsx"],"sourcesContent":["import React from 'react';\nimport type {QueryListRowRenderData} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {HistoryGroupHeader} from '../../components/HistoryGroupHeader';\nimport {TutorialRow} from '../../modules/TutorialRow';\nimport {TutorialSearchRow} from '../../modules/TutorialSearchRow';\n\nexport const TutorialRowContent = <T extends TutorialHistoryRow>({\n item,\n variant,\n renderLink,\n}: QueryListRowRenderData<T>) => {\n if ('header' in item) {\n return <HistoryGroupHeader title={item.header} />;\n }\n\n return variant === 'search' ? (\n <TutorialSearchRow item={item} renderLink={renderLink} />\n ) : (\n <TutorialRow item={item} renderLink={renderLink} />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAAQC,kBAAkB;AAC1B,SAAQC,WAAW;AACnB,SAAQC,iBAAiB;AAAyC,SAAAC,GAAA,IAAAC,IAAA;AAElE,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAIE;EAAA,IAH7BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,UAAU,GAAAH,IAAA,CAAVG,UAAU;EAEV,IAAI,QAAQ,IAAIF,IAAI,EAAE;IAClB,oBAAOH,IAAA,CAACJ,kBAAkB;MAACU,KAAK,EAAEH,IAAI,CAACI;IAAO,CAAE,CAAC;EACrD;EAEA,OAAOH,OAAO,KAAK,QAAQ,gBACvBJ,IAAA,CAACF,iBAAiB;IAACK,IAAI,EAAEA,IAAK;IAACE,UAAU,EAAEA;EAAW,CAAE,CAAC,gBAEzDL,IAAA,CAACH,WAAW;IAACM,IAAI,EAAEA,IAAK;IAACE,UAAU,EAAEA;EAAW,CAAE,CACrD;AACL,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { QueryListFilterConfig, QueryListItem, QueryListSearchConfig } from '../../types/queryList';
|
|
2
|
+
import type { QueryListFilterConfig, QueryListItem, QueryListLinkRenderer, QueryListRowRenderData, QueryListSearchConfig } from '../../types/queryList';
|
|
3
3
|
import type { TutorialHistoryRow } from '../../types/tutorial';
|
|
4
4
|
import './TutorialsHistory.scss';
|
|
5
5
|
export type TutorialsHistoryProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {
|
|
@@ -10,6 +10,11 @@ export type TutorialsHistoryProps<T extends TutorialHistoryRow = TutorialHistory
|
|
|
10
10
|
filter?: QueryListFilterConfig;
|
|
11
11
|
items: QueryListItem<T>[];
|
|
12
12
|
selectedRowId?: T['id'];
|
|
13
|
+
renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;
|
|
13
14
|
onListItemClick?: (item: QueryListItem<T>) => void;
|
|
15
|
+
hasMore?: boolean;
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
onLoadMore?: () => void;
|
|
18
|
+
renderLink?: QueryListLinkRenderer;
|
|
14
19
|
};
|
|
15
|
-
export declare const TutorialsHistory: <T extends TutorialHistoryRow>({ title, logo, search, filter, items, selectedRowId, onListItemClick, className, }: TutorialsHistoryProps<T>) => React.JSX.Element;
|
|
20
|
+
export declare const TutorialsHistory: <T extends TutorialHistoryRow>({ title, logo, search, filter, items, selectedRowId, renderRowItem, onListItemClick, hasMore, loading, onLoadMore, renderLink, className, }: TutorialsHistoryProps<T>) => React.JSX.Element;
|
|
@@ -11,7 +11,7 @@ import { HistoryHeader } from "../../modules/HistoryHeader";
|
|
|
11
11
|
import { HistoryLayout } from "../../modules/HistoryLayout";
|
|
12
12
|
import { RowsList } from "../../modules/RowsList";
|
|
13
13
|
import i18n from "./i18n";
|
|
14
|
-
import {
|
|
14
|
+
import { useListKey } from "../../helpers/useListKey";
|
|
15
15
|
import { TutorialRowContent } from "./TutorialRowContent";
|
|
16
16
|
import cn from 'bem-cn-lite';
|
|
17
17
|
import "./TutorialsHistory.css";
|
|
@@ -25,11 +25,17 @@ export var TutorialsHistory = function TutorialsHistory(_ref) {
|
|
|
25
25
|
filter = _ref.filter,
|
|
26
26
|
items = _ref.items,
|
|
27
27
|
selectedRowId = _ref.selectedRowId,
|
|
28
|
+
renderRowItem = _ref.renderRowItem,
|
|
28
29
|
onListItemClick = _ref.onListItemClick,
|
|
30
|
+
hasMore = _ref.hasMore,
|
|
31
|
+
loading = _ref.loading,
|
|
32
|
+
onLoadMore = _ref.onLoadMore,
|
|
33
|
+
renderLink = _ref.renderLink,
|
|
29
34
|
className = _ref.className;
|
|
30
35
|
var fullSearchAvailable = search.fullSearchAvailable !== false;
|
|
31
36
|
var showSearchResults = Boolean(fullSearchAvailable && search.fullSearch && ((_search$value = search.value) === null || _search$value === void 0 ? void 0 : _search$value.trim()));
|
|
32
37
|
var rowVariant = showSearchResults ? 'search' : 'default';
|
|
38
|
+
var listKey = useListKey(items, rowVariant, Boolean(onLoadMore));
|
|
33
39
|
return /*#__PURE__*/_jsx(HistoryLayout, {
|
|
34
40
|
className: block(null, className),
|
|
35
41
|
title: title || i18n('title_tutorials'),
|
|
@@ -47,11 +53,15 @@ export var TutorialsHistory = function TutorialsHistory(_ref) {
|
|
|
47
53
|
rowVariant: rowVariant,
|
|
48
54
|
selectedRowId: selectedRowId,
|
|
49
55
|
renderRow: function renderRow(data) {
|
|
50
|
-
return /*#__PURE__*/_jsx(TutorialRowContent, _objectSpread({}, data));
|
|
56
|
+
return renderRowItem ? renderRowItem(data) : /*#__PURE__*/_jsx(TutorialRowContent, _objectSpread({}, data));
|
|
51
57
|
},
|
|
52
58
|
showFiltersHint: Boolean(filter),
|
|
59
|
+
hasMore: hasMore,
|
|
60
|
+
loading: loading,
|
|
61
|
+
onLoadMore: onLoadMore,
|
|
62
|
+
renderLink: renderLink,
|
|
53
63
|
onItemClick: onListItemClick
|
|
54
|
-
},
|
|
64
|
+
}, listKey)
|
|
55
65
|
});
|
|
56
66
|
};
|
|
57
67
|
// #sourceMappingURL=TutorialsHistory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","HistoryHeader","HistoryLayout","RowsList","i18n","
|
|
1
|
+
{"version":3,"names":["React","HistoryHeader","HistoryLayout","RowsList","i18n","useListKey","TutorialRowContent","cn","jsx","_jsx","block","TutorialsHistory","_ref","_search$value","title","logo","search","filter","items","selectedRowId","renderRowItem","onListItemClick","hasMore","loading","onLoadMore","renderLink","className","fullSearchAvailable","showSearchResults","Boolean","fullSearch","value","trim","rowVariant","listKey","header","hasClear","onUpdate","children","renderRow","data","_objectSpread","showFiltersHint","onItemClick"],"sources":["TutorialsHistory.tsx"],"sourcesContent":["import React from 'react';\nimport {HistoryHeader} from '../../modules/HistoryHeader';\nimport {HistoryLayout} from '../../modules/HistoryLayout';\nimport {RowsList} from '../../modules/RowsList';\nimport i18n from './i18n';\nimport type {\n QueryListFilterConfig,\n QueryListItem,\n QueryListLinkRenderer,\n QueryListRowRenderData,\n QueryListSearchConfig,\n} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {useListKey} from '../../helpers/useListKey';\nimport {TutorialRowContent} from './TutorialRowContent';\nimport cn from 'bem-cn-lite';\nimport './TutorialsHistory.scss';\n\nexport type TutorialsHistoryProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {\n className?: string;\n title?: string;\n logo?: React.ReactNode;\n search: QueryListSearchConfig;\n filter?: QueryListFilterConfig;\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;\n onListItemClick?: (item: QueryListItem<T>) => void;\n hasMore?: boolean;\n loading?: boolean;\n onLoadMore?: () => void;\n renderLink?: QueryListLinkRenderer;\n};\n\nconst block = cn('qp-tutorials-history');\n\nexport const TutorialsHistory = <T extends TutorialHistoryRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n renderRowItem,\n onListItemClick,\n hasMore,\n loading,\n onLoadMore,\n renderLink,\n className,\n}: TutorialsHistoryProps<T>) => {\n const fullSearchAvailable = search.fullSearchAvailable !== false;\n const showSearchResults = Boolean(\n fullSearchAvailable && search.fullSearch && search.value?.trim(),\n );\n const rowVariant = showSearchResults ? 'search' : 'default';\n const listKey = useListKey(items, rowVariant, Boolean(onLoadMore));\n\n return (\n <HistoryLayout\n className={block(null, className)}\n title={title || i18n('title_tutorials')}\n logo={logo}\n header={\n <HistoryHeader\n search={search.value}\n fullSearch={search.fullSearch}\n fullSearchAvailable={fullSearchAvailable}\n hasClear={search.hasClear}\n filter={filter}\n onUpdate={search.onUpdate}\n />\n }\n >\n <RowsList\n key={listKey}\n items={items}\n rowVariant={rowVariant}\n selectedRowId={selectedRowId}\n renderRow={(data) =>\n renderRowItem ? renderRowItem(data) : <TutorialRowContent {...data} />\n }\n showFiltersHint={Boolean(filter)}\n hasMore={hasMore}\n loading={loading}\n onLoadMore={onLoadMore}\n renderLink={renderLink}\n onItemClick={onListItemClick}\n />\n </HistoryLayout>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,aAAa;AACrB,SAAQC,aAAa;AACrB,SAAQC,QAAQ;AAChB,OAAOC,IAAI;AASX,SAAQC,UAAU;AAClB,SAAQC,kBAAkB;AAC1B,OAAOC,EAAE,MAAM,aAAa;AAC5B;AAAiC,SAAAC,GAAA,IAAAC,IAAA;AAkBjC,IAAMC,KAAK,GAAGH,EAAE,CAAC,sBAAsB,CAAC;AAExC,OAAO,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAcG;EAAA,IAAAC,aAAA;EAAA,IAb5BC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,aAAa,GAAAR,IAAA,CAAbQ,aAAa;IACbC,eAAe,GAAAT,IAAA,CAAfS,eAAe;IACfC,OAAO,GAAAV,IAAA,CAAPU,OAAO;IACPC,OAAO,GAAAX,IAAA,CAAPW,OAAO;IACPC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;IACVC,UAAU,GAAAb,IAAA,CAAVa,UAAU;IACVC,SAAS,GAAAd,IAAA,CAATc,SAAS;EAET,IAAMC,mBAAmB,GAAGX,MAAM,CAACW,mBAAmB,KAAK,KAAK;EAChE,IAAMC,iBAAiB,GAAGC,OAAO,CAC7BF,mBAAmB,IAAIX,MAAM,CAACc,UAAU,MAAAjB,aAAA,GAAIG,MAAM,CAACe,KAAK,cAAAlB,aAAA,uBAAZA,aAAA,CAAcmB,IAAI,CAAC,CAAC,CACpE,CAAC;EACD,IAAMC,UAAU,GAAGL,iBAAiB,GAAG,QAAQ,GAAG,SAAS;EAC3D,IAAMM,OAAO,GAAG7B,UAAU,CAACa,KAAK,EAAEe,UAAU,EAAEJ,OAAO,CAACL,UAAU,CAAC,CAAC;EAElE,oBACIf,IAAA,CAACP,aAAa;IACVwB,SAAS,EAAEhB,KAAK,CAAC,IAAI,EAAEgB,SAAS,CAAE;IAClCZ,KAAK,EAAEA,KAAK,IAAIV,IAAI,CAAC,iBAAiB,CAAE;IACxCW,IAAI,EAAEA,IAAK;IACXoB,MAAM,eACF1B,IAAA,CAACR,aAAa;MACVe,MAAM,EAAEA,MAAM,CAACe,KAAM;MACrBD,UAAU,EAAEd,MAAM,CAACc,UAAW;MAC9BH,mBAAmB,EAAEA,mBAAoB;MACzCS,QAAQ,EAAEpB,MAAM,CAACoB,QAAS;MAC1BnB,MAAM,EAAEA,MAAO;MACfoB,QAAQ,EAAErB,MAAM,CAACqB;IAAS,CAC7B,CACJ;IAAAC,QAAA,eAED7B,IAAA,CAACN,QAAQ;MAELe,KAAK,EAAEA,KAAM;MACbe,UAAU,EAAEA,UAAW;MACvBd,aAAa,EAAEA,aAAc;MAC7BoB,SAAS,EAAE,SAAXA,SAASA,CAAGC,IAAI;QAAA,OACZpB,aAAa,GAAGA,aAAa,CAACoB,IAAI,CAAC,gBAAG/B,IAAA,CAACH,kBAAkB,EAAAmC,aAAA,KAAKD,IAAI,CAAG,CAAC;MAAA,CACzE;MACDE,eAAe,EAAEb,OAAO,CAACZ,MAAM,CAAE;MACjCK,OAAO,EAAEA,OAAQ;MACjBC,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBC,UAAU,EAAEA,UAAW;MACvBkB,WAAW,EAAEtB;IAAgB,GAZxBa,OAaR;EAAC,CACS,CAAC;AAExB,CAAC","ignoreList":[]}
|
|
@@ -5,3 +5,8 @@ export default meta;
|
|
|
5
5
|
type Story = StoryObj<typeof TutorialsHistory>;
|
|
6
6
|
export declare const Default: Story;
|
|
7
7
|
export declare const Empty: Story;
|
|
8
|
+
export declare const InitialLoading: Story;
|
|
9
|
+
export declare const Paginated: Story;
|
|
10
|
+
export declare const LoadingMore: Story;
|
|
11
|
+
export declare const RouterLinks: Story;
|
|
12
|
+
export declare const CustomRowRenderer: Story;
|
|
@@ -1,13 +1,40 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
5
|
+
var _excluded = ["onClick"];
|
|
2
6
|
import "core-js/modules/es.array.concat.js";
|
|
3
7
|
import "core-js/modules/es.array.filter.js";
|
|
8
|
+
import "core-js/modules/es.array.from.js";
|
|
4
9
|
import "core-js/modules/es.array.includes.js";
|
|
10
|
+
import "core-js/modules/es.array.map.js";
|
|
5
11
|
import "core-js/modules/es.object.to-string.js";
|
|
6
12
|
import "core-js/modules/es.string.includes.js";
|
|
13
|
+
import "core-js/modules/es.string.iterator.js";
|
|
14
|
+
import "core-js/modules/web.timers.js";
|
|
7
15
|
import React, { useState } from 'react';
|
|
16
|
+
import { Flex, Icon, Text } from '@gravity-ui/uikit';
|
|
17
|
+
var BookOpenIcon = function BookOpenIcon(props) {
|
|
18
|
+
return /*#__PURE__*/_jsx("svg", _objectSpread(_objectSpread({}, props), {}, {
|
|
19
|
+
children: /*#__PURE__*/_jsx("path", {
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
fillRule: "evenodd",
|
|
22
|
+
d: "M7.345 2.634q.136.069.268.145L8 3l.387-.221q.133-.076.268-.145a6.7 6.7 0 0 1 6.052-.03c.486.242.793.74.793 1.283v8.938c0 .65-.526 1.175-1.175 1.175h-.04c-.187 0-.37-.05-.529-.146a4.8 4.8 0 0 0-4.61-.177l-.199.1A2.1 2.1 0 0 1 8 14h-.117a1.6 1.6 0 0 1-.726-.171l-.233-.117a4.94 4.94 0 0 0-4.748.183.74.74 0 0 1-.381.105h-.12A1.175 1.175 0 0 1 .5 12.825V3.887c0-.543.307-1.04.793-1.284a6.7 6.7 0 0 1 6.052.03m1.405 9.572V4.3l.382-.218A5.2 5.2 0 0 1 14 3.927v8.357a6.3 6.3 0 0 0-5.25-.078m-1.5.005V4.299l-.382-.218A5.2 5.2 0 0 0 2 3.927v8.365a6.44 6.44 0 0 1 5.25-.082",
|
|
23
|
+
clipRule: "evenodd"
|
|
24
|
+
})
|
|
25
|
+
}));
|
|
26
|
+
};
|
|
27
|
+
BookOpenIcon.defaultProps = {
|
|
28
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
29
|
+
width: "16",
|
|
30
|
+
height: "16",
|
|
31
|
+
fill: "none",
|
|
32
|
+
viewBox: "0 0 16 16"
|
|
33
|
+
};
|
|
34
|
+
import { HistoryGroupHeader, RowLink } from "../../components";
|
|
8
35
|
import { TutorialsHistory } from "./TutorialsHistory";
|
|
9
36
|
import { action } from 'storybook/actions';
|
|
10
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
37
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
38
|
var QUERY = "use test;\n\nSELECT\n \"test_session\" AS session_id,\n \"test_task\" AS task_id,\n SUBSTRING(\"test\", 1, 1) AS truncated_char";
|
|
12
39
|
var filterFields = [{
|
|
13
40
|
id: 'onlyMine',
|
|
@@ -49,6 +76,56 @@ var BASE_ITEMS = [{
|
|
|
49
76
|
query: QUERY,
|
|
50
77
|
height: 28
|
|
51
78
|
}];
|
|
79
|
+
var LINK_ITEMS = BASE_ITEMS.map(function (item) {
|
|
80
|
+
return 'id' in item ? _objectSpread(_objectSpread({}, item), {}, {
|
|
81
|
+
href: "/tutorials/".concat(item.id)
|
|
82
|
+
}) : item;
|
|
83
|
+
});
|
|
84
|
+
var PAGINATION_PAGES = [Array.from({
|
|
85
|
+
length: 8
|
|
86
|
+
}, function (_, index) {
|
|
87
|
+
return {
|
|
88
|
+
id: "basics-".concat(index + 1),
|
|
89
|
+
title: "YQL basics: lesson ".concat(index + 1),
|
|
90
|
+
query: QUERY,
|
|
91
|
+
href: "/tutorials/basics-".concat(index + 1),
|
|
92
|
+
height: 28
|
|
93
|
+
};
|
|
94
|
+
}), Array.from({
|
|
95
|
+
length: 8
|
|
96
|
+
}, function (_, index) {
|
|
97
|
+
return {
|
|
98
|
+
id: "advanced-".concat(index + 1),
|
|
99
|
+
title: "Advanced YQL: lesson ".concat(index + 1),
|
|
100
|
+
query: QUERY,
|
|
101
|
+
href: "/tutorials/advanced-".concat(index + 1),
|
|
102
|
+
height: 28
|
|
103
|
+
};
|
|
104
|
+
})];
|
|
105
|
+
var CUSTOM_ROW_ITEMS = [{
|
|
106
|
+
header: 'Getting started',
|
|
107
|
+
height: 28
|
|
108
|
+
}, {
|
|
109
|
+
id: '01HZXB4K8P7Y2Q9T6M3N5R1C0A',
|
|
110
|
+
title: 'Getting started with YQL',
|
|
111
|
+
href: '/tutorials/getting-started',
|
|
112
|
+
height: 32
|
|
113
|
+
}];
|
|
114
|
+
var renderRouterLink = function renderRouterLink(_ref) {
|
|
115
|
+
var _onClick = _ref.onClick,
|
|
116
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
117
|
+
return /*#__PURE__*/_jsx("a", _objectSpread(_objectSpread({}, props), {}, {
|
|
118
|
+
"data-router-link": true,
|
|
119
|
+
onClick: function onClick(event) {
|
|
120
|
+
_onClick === null || _onClick === void 0 || _onClick(event);
|
|
121
|
+
if (event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
event.preventDefault();
|
|
125
|
+
action('routerNavigate')(props.href);
|
|
126
|
+
}
|
|
127
|
+
}));
|
|
128
|
+
};
|
|
52
129
|
var meta = {
|
|
53
130
|
title: 'Widgets/TutorialsHistory',
|
|
54
131
|
component: TutorialsHistory,
|
|
@@ -136,6 +213,117 @@ var EmptyStory = function EmptyStory() {
|
|
|
136
213
|
})
|
|
137
214
|
});
|
|
138
215
|
};
|
|
216
|
+
var PaginatedStory = function PaginatedStory() {
|
|
217
|
+
var _useState7 = useState(PAGINATION_PAGES[0]),
|
|
218
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
219
|
+
items = _useState8[0],
|
|
220
|
+
setItems = _useState8[1];
|
|
221
|
+
var _useState9 = useState(1),
|
|
222
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
223
|
+
page = _useState0[0],
|
|
224
|
+
setPage = _useState0[1];
|
|
225
|
+
var _useState1 = useState(false),
|
|
226
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
227
|
+
loading = _useState10[0],
|
|
228
|
+
setLoading = _useState10[1];
|
|
229
|
+
var handleLoadMore = function handleLoadMore() {
|
|
230
|
+
var nextPage = PAGINATION_PAGES[page];
|
|
231
|
+
if (loading || !nextPage) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
action('onLoadMore')(page);
|
|
235
|
+
setLoading(true);
|
|
236
|
+
window.setTimeout(function () {
|
|
237
|
+
setItems(function (currentItems) {
|
|
238
|
+
return [].concat(_toConsumableArray(currentItems), _toConsumableArray(nextPage));
|
|
239
|
+
});
|
|
240
|
+
setPage(function (currentPage) {
|
|
241
|
+
return currentPage + 1;
|
|
242
|
+
});
|
|
243
|
+
setLoading(false);
|
|
244
|
+
}, 1500);
|
|
245
|
+
};
|
|
246
|
+
return /*#__PURE__*/_jsx("div", {
|
|
247
|
+
style: {
|
|
248
|
+
width: 300,
|
|
249
|
+
height: 300
|
|
250
|
+
},
|
|
251
|
+
children: /*#__PURE__*/_jsx(TutorialsHistory, {
|
|
252
|
+
title: "Paginated tutorials",
|
|
253
|
+
items: items,
|
|
254
|
+
selectedRowId: "basics-2",
|
|
255
|
+
loading: loading,
|
|
256
|
+
hasMore: page < PAGINATION_PAGES.length,
|
|
257
|
+
onLoadMore: handleLoadMore,
|
|
258
|
+
renderLink: renderRouterLink,
|
|
259
|
+
search: {
|
|
260
|
+
onUpdate: action('onSearchUpdate')
|
|
261
|
+
}
|
|
262
|
+
})
|
|
263
|
+
});
|
|
264
|
+
};
|
|
265
|
+
var RouterLinksStory = function RouterLinksStory() {
|
|
266
|
+
var _useState11 = useState({
|
|
267
|
+
value: '',
|
|
268
|
+
fullSearch: false
|
|
269
|
+
}),
|
|
270
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
271
|
+
search = _useState12[0],
|
|
272
|
+
setSearch = _useState12[1];
|
|
273
|
+
return /*#__PURE__*/_jsx("div", {
|
|
274
|
+
style: {
|
|
275
|
+
width: 500,
|
|
276
|
+
height: 500
|
|
277
|
+
},
|
|
278
|
+
children: /*#__PURE__*/_jsx(TutorialsHistory, {
|
|
279
|
+
title: "Router links",
|
|
280
|
+
items: LINK_ITEMS,
|
|
281
|
+
renderLink: renderRouterLink,
|
|
282
|
+
search: _objectSpread(_objectSpread({}, search), {}, {
|
|
283
|
+
hasClear: true,
|
|
284
|
+
onUpdate: setSearch
|
|
285
|
+
})
|
|
286
|
+
})
|
|
287
|
+
});
|
|
288
|
+
};
|
|
289
|
+
var CustomRowRendererStory = function CustomRowRendererStory() {
|
|
290
|
+
return /*#__PURE__*/_jsx("div", {
|
|
291
|
+
style: {
|
|
292
|
+
width: 400,
|
|
293
|
+
height: 300
|
|
294
|
+
},
|
|
295
|
+
children: /*#__PURE__*/_jsx(TutorialsHistory, {
|
|
296
|
+
title: "Custom tutorial rows",
|
|
297
|
+
items: CUSTOM_ROW_ITEMS,
|
|
298
|
+
selectedRowId: "01HZXB4K8P7Y2Q9T6M3N5R1C0A",
|
|
299
|
+
renderLink: renderRouterLink,
|
|
300
|
+
renderRowItem: function renderRowItem(_ref2) {
|
|
301
|
+
var item = _ref2.item,
|
|
302
|
+
renderLink = _ref2.renderLink;
|
|
303
|
+
return 'header' in item ? /*#__PURE__*/_jsx(HistoryGroupHeader, {
|
|
304
|
+
title: item.header
|
|
305
|
+
}) : /*#__PURE__*/_jsx(RowLink, {
|
|
306
|
+
href: item.href,
|
|
307
|
+
renderLink: renderLink,
|
|
308
|
+
children: /*#__PURE__*/_jsxs(Flex, {
|
|
309
|
+
alignItems: "center",
|
|
310
|
+
gap: 2,
|
|
311
|
+
children: [/*#__PURE__*/_jsx(Icon, {
|
|
312
|
+
data: BookOpenIcon,
|
|
313
|
+
size: 16
|
|
314
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
315
|
+
ellipsis: true,
|
|
316
|
+
children: item.title
|
|
317
|
+
})]
|
|
318
|
+
})
|
|
319
|
+
});
|
|
320
|
+
},
|
|
321
|
+
search: {
|
|
322
|
+
onUpdate: action('onSearchUpdate')
|
|
323
|
+
}
|
|
324
|
+
})
|
|
325
|
+
});
|
|
326
|
+
};
|
|
139
327
|
export var Default = {
|
|
140
328
|
render: function render() {
|
|
141
329
|
return /*#__PURE__*/_jsx(DefaultStory, {});
|
|
@@ -146,4 +334,59 @@ export var Empty = {
|
|
|
146
334
|
return /*#__PURE__*/_jsx(EmptyStory, {});
|
|
147
335
|
}
|
|
148
336
|
};
|
|
337
|
+
export var InitialLoading = {
|
|
338
|
+
args: {
|
|
339
|
+
title: 'Loading tutorials',
|
|
340
|
+
items: [],
|
|
341
|
+
loading: true,
|
|
342
|
+
search: {
|
|
343
|
+
onUpdate: action('onSearchUpdate')
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
decorators: [function (StoryComponent) {
|
|
347
|
+
return /*#__PURE__*/_jsx("div", {
|
|
348
|
+
style: {
|
|
349
|
+
width: 300,
|
|
350
|
+
height: 500
|
|
351
|
+
},
|
|
352
|
+
children: /*#__PURE__*/_jsx(StoryComponent, {})
|
|
353
|
+
});
|
|
354
|
+
}]
|
|
355
|
+
};
|
|
356
|
+
export var Paginated = {
|
|
357
|
+
render: function render() {
|
|
358
|
+
return /*#__PURE__*/_jsx(PaginatedStory, {});
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
export var LoadingMore = {
|
|
362
|
+
args: {
|
|
363
|
+
title: 'Loading next page',
|
|
364
|
+
items: PAGINATION_PAGES[0],
|
|
365
|
+
loading: true,
|
|
366
|
+
hasMore: true,
|
|
367
|
+
onLoadMore: action('onLoadMore'),
|
|
368
|
+
search: {
|
|
369
|
+
onUpdate: action('onSearchUpdate')
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
decorators: [function (StoryComponent) {
|
|
373
|
+
return /*#__PURE__*/_jsx("div", {
|
|
374
|
+
style: {
|
|
375
|
+
width: 300,
|
|
376
|
+
height: 300
|
|
377
|
+
},
|
|
378
|
+
children: /*#__PURE__*/_jsx(StoryComponent, {})
|
|
379
|
+
});
|
|
380
|
+
}]
|
|
381
|
+
};
|
|
382
|
+
export var RouterLinks = {
|
|
383
|
+
render: function render() {
|
|
384
|
+
return /*#__PURE__*/_jsx(RouterLinksStory, {});
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
export var CustomRowRenderer = {
|
|
388
|
+
render: function render() {
|
|
389
|
+
return /*#__PURE__*/_jsx(CustomRowRendererStory, {});
|
|
390
|
+
}
|
|
391
|
+
};
|
|
149
392
|
// #sourceMappingURL=TutorialsHistory.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","TutorialsHistory","action","jsx","_jsx","QUERY","filterFields","id","type","title","initialValue","items","logFilterApply","logFilterReset","BASE_ITEMS","query","height","meta","component","tags","parameters","layout","DefaultStory","_useState","concat","_useState2","_slicedToArray","setItems","_useState3","value","fullSearch","_useState4","search","setSearch","handleOnSearch","data","newItems","filter","item","_item$query","toLowerCase","searchValue","includes","style","width","children","fields","onApply","onReset","hasClear","onUpdate","EmptyStory","_useState5","_useState6","Default","render","Empty"],"sources":["TutorialsHistory.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {TutorialsHistory} from './TutorialsHistory';\nimport {QueryListFilterConfig, QueryListItem} from '../../types/queryList';\nimport {TutorialHistoryRow} from '../../types/tutorial';\nimport {action} from 'storybook/actions';\n\nconst QUERY = `use test;\n\nSELECT\n \"test_session\" AS session_id,\n \"test_task\" AS task_id,\n SUBSTRING(\"test\", 1, 1) AS truncated_char`;\n\nconst filterFields: QueryListFilterConfig['fields'] = [\n {id: 'onlyMine', type: 'switch', title: 'My queries only', initialValue: true},\n {id: 'range', type: 'rangeDatePicker', title: 'Period'},\n {\n id: 'dialect',\n type: 'checkboxGroup',\n title: 'Dialect',\n initialValue: [],\n items: [\n {id: 'yql', title: 'YQL'},\n {id: 'sql', title: 'SQL'},\n ],\n },\n];\n\nconst logFilterApply = action('onFilterApply');\nconst logFilterReset = action('onFilterReset');\n\nconst BASE_ITEMS: QueryListItem<TutorialHistoryRow>[] = [\n {\n id: 1,\n title: 'Getting started with YQL',\n query: QUERY,\n height: 28,\n },\n {\n id: 2,\n title: 'Working with tables',\n query: QUERY,\n height: 28,\n },\n {\n id: 3,\n title: 'Window functions',\n query: QUERY,\n height: 28,\n },\n];\n\nconst meta: Meta<typeof TutorialsHistory> = {\n title: 'Widgets/TutorialsHistory',\n component: TutorialsHistory,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof TutorialsHistory>;\n\nconst DefaultStory = () => {\n const [items, setItems] = useState([...BASE_ITEMS]);\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n const handleOnSearch = (data: {value: string; fullSearch: boolean}) => {\n setSearch(data);\n\n if (!data.value) {\n setItems(BASE_ITEMS);\n return;\n }\n\n const newItems = BASE_ITEMS.filter((item) => {\n if (!('id' in item)) return false;\n\n const title = item.title.toLowerCase();\n const query = item.query?.toLowerCase();\n const searchValue = data.value.toLowerCase();\n\n if (data.fullSearch) {\n return title.includes(searchValue) || query?.includes(searchValue);\n }\n\n return title.includes(searchValue);\n });\n setItems(newItems);\n };\n\n return (\n <div style={{width: 300, height: 500}}>\n <TutorialsHistory\n title=\"Tutorials\"\n items={items}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: handleOnSearch,\n }}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 300, height: 500}}>\n <TutorialsHistory\n title=\"Tutorials\"\n items={[]}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nexport const Default: Story = {render: () => <DefaultStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","Flex","Icon","Text","BookOpenIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","HistoryGroupHeader","RowLink","TutorialsHistory","action","jsx","jsxs","_jsxs","QUERY","filterFields","id","type","title","initialValue","items","logFilterApply","logFilterReset","BASE_ITEMS","query","LINK_ITEMS","map","item","href","concat","PAGINATION_PAGES","Array","from","length","_","index","CUSTOM_ROW_ITEMS","header","renderRouterLink","_ref","onClick","_objectWithoutProperties","_excluded","event","defaultPrevented","button","metaKey","ctrlKey","shiftKey","altKey","preventDefault","meta","component","tags","parameters","layout","DefaultStory","_useState","_useState2","_slicedToArray","setItems","_useState3","value","fullSearch","_useState4","search","setSearch","handleOnSearch","data","newItems","filter","_item$query","toLowerCase","searchValue","includes","style","fields","onApply","onReset","hasClear","onUpdate","EmptyStory","_useState5","_useState6","PaginatedStory","_useState7","_useState8","_useState9","_useState0","page","setPage","_useState1","_useState10","loading","setLoading","handleLoadMore","nextPage","window","setTimeout","currentItems","_toConsumableArray","currentPage","selectedRowId","hasMore","onLoadMore","renderLink","RouterLinksStory","_useState11","_useState12","CustomRowRendererStory","renderRowItem","_ref2","alignItems","gap","size","ellipsis","Default","render","Empty","InitialLoading","args","decorators","StoryComponent","Paginated","LoadingMore","RouterLinks","CustomRowRenderer"],"sources":["TutorialsHistory.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Flex, Icon, Text} from '@gravity-ui/uikit';\nimport BookOpenIcon from '@gravity-ui/icons/svgs/book-open.svg';\nimport {HistoryGroupHeader, RowLink} from '../../components';\nimport {TutorialsHistory} from './TutorialsHistory';\nimport type {\n QueryListFilterConfig,\n QueryListItem,\n QueryListLinkRenderer,\n} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {action} from 'storybook/actions';\n\nconst QUERY = `use test;\n\nSELECT\n \"test_session\" AS session_id,\n \"test_task\" AS task_id,\n SUBSTRING(\"test\", 1, 1) AS truncated_char`;\n\nconst filterFields: QueryListFilterConfig['fields'] = [\n {id: 'onlyMine', type: 'switch', title: 'My queries only', initialValue: true},\n {id: 'range', type: 'rangeDatePicker', title: 'Period'},\n {\n id: 'dialect',\n type: 'checkboxGroup',\n title: 'Dialect',\n initialValue: [],\n items: [\n {id: 'yql', title: 'YQL'},\n {id: 'sql', title: 'SQL'},\n ],\n },\n];\n\nconst logFilterApply = action('onFilterApply');\nconst logFilterReset = action('onFilterReset');\n\nconst BASE_ITEMS: QueryListItem<TutorialHistoryRow>[] = [\n {\n id: 1,\n title: 'Getting started with YQL',\n query: QUERY,\n height: 28,\n },\n {\n id: 2,\n title: 'Working with tables',\n query: QUERY,\n height: 28,\n },\n {\n id: 3,\n title: 'Window functions',\n query: QUERY,\n height: 28,\n },\n];\n\nconst LINK_ITEMS = BASE_ITEMS.map((item) =>\n 'id' in item ? {...item, href: `/tutorials/${item.id}`} : item,\n);\n\nconst PAGINATION_PAGES: QueryListItem<TutorialHistoryRow>[][] = [\n Array.from({length: 8}, (_, index) => ({\n id: `basics-${index + 1}`,\n title: `YQL basics: lesson ${index + 1}`,\n query: QUERY,\n href: `/tutorials/basics-${index + 1}`,\n height: 28,\n })),\n Array.from({length: 8}, (_, index) => ({\n id: `advanced-${index + 1}`,\n title: `Advanced YQL: lesson ${index + 1}`,\n query: QUERY,\n href: `/tutorials/advanced-${index + 1}`,\n height: 28,\n })),\n];\n\nconst CUSTOM_ROW_ITEMS: QueryListItem<TutorialHistoryRow>[] = [\n {header: 'Getting started', height: 28},\n {\n id: '01HZXB4K8P7Y2Q9T6M3N5R1C0A',\n title: 'Getting started with YQL',\n href: '/tutorials/getting-started',\n height: 32,\n },\n];\n\nconst renderRouterLink: QueryListLinkRenderer = ({onClick, ...props}) => (\n <a\n {...props}\n data-router-link\n onClick={(event) => {\n onClick?.(event);\n\n if (\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey\n ) {\n return;\n }\n\n event.preventDefault();\n action('routerNavigate')(props.href);\n }}\n />\n);\n\nconst meta: Meta<typeof TutorialsHistory> = {\n title: 'Widgets/TutorialsHistory',\n component: TutorialsHistory,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof TutorialsHistory>;\n\nconst DefaultStory = () => {\n const [items, setItems] = useState([...BASE_ITEMS]);\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n const handleOnSearch = (data: {value: string; fullSearch: boolean}) => {\n setSearch(data);\n\n if (!data.value) {\n setItems(BASE_ITEMS);\n return;\n }\n\n const newItems = BASE_ITEMS.filter((item) => {\n if (!('id' in item)) return false;\n\n const title = item.title.toLowerCase();\n const query = item.query?.toLowerCase();\n const searchValue = data.value.toLowerCase();\n\n if (data.fullSearch) {\n return title.includes(searchValue) || query?.includes(searchValue);\n }\n\n return title.includes(searchValue);\n });\n setItems(newItems);\n };\n\n return (\n <div style={{width: 300, height: 500}}>\n <TutorialsHistory\n title=\"Tutorials\"\n items={items}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: handleOnSearch,\n }}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 300, height: 500}}>\n <TutorialsHistory\n title=\"Tutorials\"\n items={[]}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nconst PaginatedStory = () => {\n const [items, setItems] = useState<QueryListItem<TutorialHistoryRow>[]>(PAGINATION_PAGES[0]);\n const [page, setPage] = useState(1);\n const [loading, setLoading] = useState(false);\n\n const handleLoadMore = () => {\n const nextPage = PAGINATION_PAGES[page];\n\n if (loading || !nextPage) {\n return;\n }\n\n action('onLoadMore')(page);\n setLoading(true);\n\n window.setTimeout(() => {\n setItems((currentItems) => [...currentItems, ...nextPage]);\n setPage((currentPage) => currentPage + 1);\n setLoading(false);\n }, 1500);\n };\n\n return (\n <div style={{width: 300, height: 300}}>\n <TutorialsHistory\n title=\"Paginated tutorials\"\n items={items}\n selectedRowId=\"basics-2\"\n loading={loading}\n hasMore={page < PAGINATION_PAGES.length}\n onLoadMore={handleLoadMore}\n renderLink={renderRouterLink}\n search={{onUpdate: action('onSearchUpdate')}}\n />\n </div>\n );\n};\n\nconst RouterLinksStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 500, height: 500}}>\n <TutorialsHistory\n title=\"Router links\"\n items={LINK_ITEMS}\n renderLink={renderRouterLink}\n search={{...search, hasClear: true, onUpdate: setSearch}}\n />\n </div>\n );\n};\n\nconst CustomRowRendererStory = () => (\n <div style={{width: 400, height: 300}}>\n <TutorialsHistory\n title=\"Custom tutorial rows\"\n items={CUSTOM_ROW_ITEMS}\n selectedRowId=\"01HZXB4K8P7Y2Q9T6M3N5R1C0A\"\n renderLink={renderRouterLink}\n renderRowItem={({item, renderLink}) =>\n 'header' in item ? (\n <HistoryGroupHeader title={item.header} />\n ) : (\n <RowLink href={item.href} renderLink={renderLink}>\n <Flex alignItems=\"center\" gap={2}>\n <Icon data={BookOpenIcon} size={16} />\n <Text ellipsis>{item.title}</Text>\n </Flex>\n </RowLink>\n )\n }\n search={{onUpdate: action('onSearchUpdate')}}\n />\n </div>\n);\n\nexport const Default: Story = {render: () => <DefaultStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\nexport const InitialLoading: Story = {\n args: {\n title: 'Loading tutorials',\n items: [],\n loading: true,\n search: {onUpdate: action('onSearchUpdate')},\n },\n decorators: [\n (StoryComponent) => (\n <div style={{width: 300, height: 500}}>\n <StoryComponent />\n </div>\n ),\n ],\n};\nexport const Paginated: Story = {render: () => <PaginatedStory />};\nexport const LoadingMore: Story = {\n args: {\n title: 'Loading next page',\n items: PAGINATION_PAGES[0],\n loading: true,\n hasMore: true,\n onLoadMore: action('onLoadMore'),\n search: {onUpdate: action('onSearchUpdate')},\n },\n decorators: [\n (StoryComponent) => (\n <div style={{width: 300, height: 300}}>\n <StoryComponent />\n </div>\n ),\n ],\n};\nexport const RouterLinks: Story = {render: () => <RouterLinksStory />};\nexport const CustomRowRenderer: Story = {render: () => <CustomRowRendererStory />};\n"],"mappings":"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","ignoreList":[]}
|