Skip to content

Commit 484f1ca

Browse files
authored
fix(playground): replace antd daterange picker (#7735)
1 parent 79c5e92 commit 484f1ca

File tree

6 files changed

+3160
-133
lines changed

6 files changed

+3160
-133
lines changed

packages/cubejs-playground/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
"uuid": "^8.3.2"
5959
},
6060
"devDependencies": {
61+
"@cube-dev/ui-kit": "0.30.0",
6162
"@ant-design/compatible": "^1.0.2",
6263
"@ant-design/icons": "^4.7.0",
6364
"@cubejs-client/core": "^0.34.37",
@@ -98,6 +99,7 @@
9899
"prismjs": ">=1.25.0",
99100
"react": ">=17.0.1",
100101
"react-dom": ">=17.0.1",
101-
"styled-components": ">=5.2.0"
102+
"styled-components": ">=5.2.0",
103+
"@cube-dev/ui-kit": ">=0.30.0"
102104
}
103105
}

packages/cubejs-playground/src/App.tsx

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Alert, Layout } from 'antd';
44
import { Component, useEffect } from 'react';
55
import { RouteComponentProps, withRouter } from 'react-router-dom';
66
import styled from 'styled-components';
7+
import { Root, tasty } from '@cube-dev/ui-kit';
78

89
import { CubeLoader } from './atoms';
910
import { AppContextConsumer, PlaygroundContext } from './components/AppContext';
@@ -102,23 +103,25 @@ class App extends Component<RouteComponentProps, AppState> {
102103
<LivePreviewContextProvider
103104
disabled={context!.livePreview == null || !context!.livePreview}
104105
>
105-
<Layout>
106-
<GlobalStyles />
107-
108-
<Header selectedKeys={[location.pathname]} />
109-
110-
<StyledLayoutContent>
111-
{fatalError ? (
112-
<Alert
113-
message="Error occured while rendering"
114-
description={fatalError.stack || ''}
115-
type="error"
116-
/>
117-
) : (
118-
children
119-
)}
120-
</StyledLayoutContent>
121-
</Layout>
106+
<Root>
107+
<Layout>
108+
<GlobalStyles />
109+
110+
<Header selectedKeys={[location.pathname]} />
111+
112+
<StyledLayoutContent>
113+
{fatalError ? (
114+
<Alert
115+
message="Error occured while rendering"
116+
description={fatalError.stack || ''}
117+
type="error"
118+
/>
119+
) : (
120+
children
121+
)}
122+
</StyledLayoutContent>
123+
</Layout>
124+
</Root>
122125
</LivePreviewContextProvider>
123126
);
124127
}

packages/cubejs-playground/src/QueryBuilder/TimeGroup.tsx

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
import { PlusOutlined } from '@ant-design/icons';
2-
import { DatePicker, Menu } from 'antd';
3-
import moment from 'moment';
4-
import { useState, Fragment } from 'react';
2+
import { Menu } from 'antd';
3+
import { Fragment, useState } from 'react';
54
import styled from 'styled-components';
65

6+
import { SectionRow } from '../components';
77
import { ButtonDropdown } from './ButtonDropdown';
88
import MemberDropdown from './MemberDropdown';
9-
import RemoveButtonGroup from './RemoveButtonGroup';
109
import MissingMemberTooltip from './MissingMemberTooltip';
11-
import { SectionRow } from '../components';
10+
import RemoveButtonGroup from './RemoveButtonGroup';
11+
import { TimeDateRangeSelector } from './TimeRangeSelector';
1212

1313
const Label = styled.div`
1414
color: var(--dark-04-color);
1515
line-height: 32px;
1616
`;
1717

18-
const { RangePicker } = DatePicker;
19-
2018
const DateRanges = [
2119
{ title: 'Custom', value: 'custom' },
2220
{ title: 'All time', value: undefined },
@@ -52,7 +50,7 @@ const TimeGroup = ({
5250
if (dateRange && !dateRange.some((d) => !d)) {
5351
updateMethods.update(m, {
5452
...m,
55-
dateRange: dateRange.map((dateTime) => dateTime.format('YYYY-MM-DD')),
53+
dateRange,
5654
});
5755
}
5856
}
@@ -62,7 +60,11 @@ const TimeGroup = ({
6260
<Menu className="ant-dropdown-menu ant-dropdown-menu-root">
6361
{member.granularities.length ? (
6462
member.granularities.map((m) => (
65-
<Menu.Item key={m.title} className="ant-dropdown-menu-item" onClick={() => onClick(m)}>
63+
<Menu.Item
64+
key={m.title}
65+
className="ant-dropdown-menu-item"
66+
onClick={() => onClick(m)}
67+
>
6668
{m.title}
6769
</Menu.Item>
6870
))
@@ -147,13 +149,11 @@ const TimeGroup = ({
147149
</ButtonDropdown>
148150

149151
{isRangePickerVisible || isCustomDateRange ? (
150-
<RangePicker
151-
disabled={disabled}
152-
format="YYYY-MM-DD"
153-
defaultValue={(parsedDateRange || []).map((date) =>
154-
moment(date)
155-
)}
156-
onChange={(dateRange) => onDateRangeSelect(m, dateRange)}
152+
<TimeDateRangeSelector
153+
value={parsedDateRange || []}
154+
onChange={(dateRange) => {
155+
onDateRangeSelect(m, dateRange);
156+
}}
157157
/>
158158
) : null}
159159

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { DateRangeSeparatedPicker, parseAbsoluteDate } from '@cube-dev/ui-kit';
2+
import { useCallback, useMemo } from 'react';
3+
4+
interface TimeDateRangeSelectorProps {
5+
type?: 'time' | 'date';
6+
value: [string | undefined, string | undefined];
7+
onChange: (value: [string, string]) => void;
8+
}
9+
10+
export function TimeDateRangeSelector(props: TimeDateRangeSelectorProps) {
11+
const { value, onChange } = props;
12+
13+
const onChangeHandler = useCallback(
14+
(val) => {
15+
onChange([
16+
val.start.toString().split(/[+\]]/)[0].replace('T00:00:00', ''),
17+
val.end.toString().split(/[+\]]/)[0].replace('T00:00:00', ''),
18+
]);
19+
},
20+
[onChange]
21+
);
22+
23+
const dateValue = useMemo(() => {
24+
const startDate = parseAbsoluteDate(value[0]);
25+
const endDate = parseAbsoluteDate(value[1]);
26+
27+
return startDate && endDate
28+
? {
29+
start: startDate,
30+
end: endDate,
31+
}
32+
: null;
33+
}, [value[0], value[1]]);
34+
35+
return useMemo(
36+
() => (
37+
<DateRangeSeparatedPicker
38+
aria-label="Date range picker"
39+
size="small"
40+
defaultValue={dateValue}
41+
onChange={onChangeHandler}
42+
/>
43+
),
44+
[onChangeHandler]
45+
);
46+
}

packages/cubejs-playground/src/rollup-designer/components/Settings.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -374,13 +374,6 @@ export function Settings({
374374
</Space>
375375
</>
376376
)}
377-
378-
{/* <Typography.Paragraph strong>Build Range</Typography.Paragraph> */}
379-
{/* <Flex direction="column" gap={4}>
380-
<BuildRange time="since" />
381-
382-
<BuildRange time="until" />
383-
</Flex> */}
384377
</>
385378
) : null}
386379
</>

0 commit comments

Comments
 (0)