Skip to content

Commit ac69ee4

Browse files
feat: add new sortorder option (#1048)
1 parent ded171b commit ac69ee4

File tree

2 files changed

+31
-8
lines changed

2 files changed

+31
-8
lines changed

src/components/vis-elements/BarList/BarList.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export interface BarListProps<T = any> extends React.HTMLAttributes<HTMLDivEleme
2929
color?: Color;
3030
showAnimation?: boolean;
3131
onValueChange?: (payload: Bar<T>) => void;
32-
sortOrder?: "ascending" | "descending";
32+
sortOrder?: "ascending" | "descending" | "none";
3333
}
3434

3535
function BarListInner<T>(props: BarListProps<T>, ref: React.ForwardedRef<HTMLDivElement>) {
@@ -46,12 +46,12 @@ function BarListInner<T>(props: BarListProps<T>, ref: React.ForwardedRef<HTMLDiv
4646

4747
const Component = onValueChange ? "button" : "div";
4848
const sortedData = React.useMemo(() => {
49-
if (sortOrder) {
50-
return [...data].sort((a, b) => {
51-
return sortOrder === "ascending" ? a.value - b.value : b.value - a.value;
52-
});
49+
if (sortOrder === "none") {
50+
return data;
5351
}
54-
return data;
52+
return [...data].sort((a, b) => {
53+
return sortOrder === "ascending" ? a.value - b.value : b.value - a.value;
54+
});
5555
}, [data, sortOrder]);
5656

5757
const widths = React.useMemo(() => {

src/stories/vis-elements/BarList.stories.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ const getData = (
2424
additionalItems: BarListProps["data"] = [],
2525
) => {
2626
const basicData = [
27-
{ name: "/home", value: 100000000 },
28-
{ name: "/imprint", value: 351 },
27+
{ name: "/home", value: 10000 },
2928
{ name: "/cancellation", value: 271 },
29+
{ name: "/imprint", value: 3351 },
3030
{
3131
name: `/special-offer-august-getsahdkjhagskdfjhgakshjgdfkjahsgdfjkgasdjkhfgajkshgdfjkhagsdkjhfgajhksdgfjkhasdg
3232
fjkhagsdjhkgfasjkdgfjkasdhgkjgfdsk`,
@@ -92,3 +92,26 @@ export const WithOnValueChange: Story = {
9292
onValueChange: (data) => alert(JSON.stringify(data)),
9393
},
9494
};
95+
96+
export const SortOrderDescending: Story = {
97+
render: (args) => <BarList {...args} />,
98+
args: {
99+
data: getData(),
100+
},
101+
};
102+
103+
export const SortOrderAscending: Story = {
104+
render: (args) => <BarList {...args} />,
105+
args: {
106+
data: getData(),
107+
sortOrder: "ascending",
108+
},
109+
};
110+
111+
export const SortOrderNone: Story = {
112+
render: (args) => <BarList {...args} />,
113+
args: {
114+
data: getData(),
115+
sortOrder: "none",
116+
},
117+
};

0 commit comments

Comments
 (0)