Skip to content

Commit 76ba32e

Browse files
committed
fix(ui): use dPrefix instead of d-
1 parent e2995f9 commit 76ba32e

6 files changed

Lines changed: 38 additions & 23 deletions

File tree

packages/ui/src/components/_popup/Popup.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,18 @@ export const DPopup = React.forwardRef<DPopupRef, DPopupProps>((props, ref) => {
9696
const targetEl = useElement(dTarget);
9797
const handleContainer = useCallback(() => {
9898
if (isUndefined(dContainer)) {
99-
let el = document.getElementById('d-popup-root');
99+
let el = document.getElementById(`${dPrefix}popup-root`);
100100
if (!el) {
101101
el = document.createElement('div');
102-
el.id = 'd-popup-root';
102+
el.id = `${dPrefix}popup-root`;
103103
document.body.appendChild(el);
104104
}
105105
return el;
106106
} else if (dContainer === false) {
107107
return targetEl.current?.parentElement ?? null;
108108
}
109109
return null;
110-
}, [dContainer, targetEl]);
110+
}, [dContainer, dPrefix, targetEl]);
111111
const containerEl = useElement(dContainer, handleContainer);
112112
//#endregion
113113

packages/ui/src/components/drawer/Drawer.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,18 +77,18 @@ export const DDrawer = React.forwardRef<DDrawerRef, DDrawerProps>((props, ref) =
7777
//#region Element
7878
const handleContainer = useCallback(() => {
7979
if (isUndefined(dContainer)) {
80-
let el = document.getElementById('d-drawer-root');
80+
let el = document.getElementById(`${dPrefix}drawer-root`);
8181
if (!el) {
8282
el = document.createElement('div');
83-
el.id = 'd-drawer-root';
83+
el.id = `${dPrefix}drawer-root`;
8484
document.body.appendChild(el);
8585
}
8686
return el;
8787
} else if (dContainer === false) {
8888
return drawerEl?.parentElement ?? null;
8989
}
9090
return null;
91-
}, [dContainer, drawerEl]);
91+
}, [dContainer, dPrefix, drawerEl?.parentElement]);
9292
const containerEl = useElement(dContainer, handleContainer);
9393
//#endregion
9494

packages/ui/src/components/tooltip/Tooltip.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ export const DTooltip = React.forwardRef<DPopupRef, DTooltipProps>((props, ref)
4343
const _child = React.Children.only(children) as React.ReactElement;
4444
return React.cloneElement(_child, {
4545
..._child.props,
46-
'aria-describedby': `d-tooltip-${id}`,
46+
'aria-describedby': `${dPrefix}tooltip-${id}`,
4747
});
48-
}, [children, id]);
48+
}, [children, dPrefix, id]);
4949
//#endregion
5050

5151
return (
@@ -55,10 +55,10 @@ export const DTooltip = React.forwardRef<DPopupRef, DTooltipProps>((props, ref)
5555
<DPopup
5656
{...restProps}
5757
ref={ref}
58-
id={`d-tooltip-${id}`}
58+
id={`${dPrefix}tooltip-${id}`}
5959
className={getClassName(className, `${dPrefix}tooltip`)}
6060
role="tooltip"
61-
dTarget={`[aria-describedby="d-tooltip-${id}"]`}
61+
dTarget={`[aria-describedby="${dPrefix}tooltip-${id}"]`}
6262
>
6363
{dTitle}
6464
</DPopup>

packages/ui/src/components/virtual-scroll/VirtualScroll.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { isUndefined } from 'lodash';
22
import React, { useCallback, useEffect, useMemo } from 'react';
33
import { useImmer } from 'use-immer';
44

5-
import { useDComponentConfig, useElement, useId, useThrottle, useAsync } from '../../hooks';
5+
import { useDComponentConfig, useElement, useId, useThrottle, useAsync, useDPrefixConfig } from '../../hooks';
66

77
export interface DVirtualScrollProps<T> {
88
dTag?: string;
@@ -33,6 +33,7 @@ export function DVirtualScroll<T>(props: DVirtualScrollProps<T>) {
3333
...restProps
3434
} = useDComponentConfig('virtual-scroll', props);
3535

36+
const dPrefix = useDPrefixConfig();
3637
const { throttleByAnimationFrame } = useThrottle();
3738
const asyncCapture = useAsync();
3839

@@ -55,8 +56,8 @@ export function DVirtualScroll<T>(props: DVirtualScrollProps<T>) {
5556
//#endregion
5657

5758
//#region Element
58-
const el = useElement(`[data-d-virtual-scroll-${id}]`);
59-
const referenceEl = useElement(`[data-d-virtual-scroll-reference-${id}]`);
59+
const el = useElement(`[data-${dPrefix}virtual-scroll-${id}]`);
60+
const referenceEl = useElement(`[data-${dPrefix}virtual-scroll-reference-${id}]`);
6061
//#endregion
6162

6263
//#region Getters.
@@ -161,10 +162,10 @@ export function DVirtualScroll<T>(props: DVirtualScrollProps<T>) {
161162
}, 20);
162163
return React.cloneElement(_reference, {
163164
..._reference.props,
164-
[`data-d-virtual-scroll-reference-${id}`]: 'true',
165+
[`data-${dPrefix}virtual-scroll-reference-${id}`]: 'true',
165166
});
166167
}
167-
}, [asyncCapture, dCustomSize, dList, dRenderItem, id, referenceEl, throttleByAnimationFrame, updateList]);
168+
}, [asyncCapture, dCustomSize, dList, dPrefix, dRenderItem, id, referenceEl, throttleByAnimationFrame, updateList]);
168169

169170
const handleScroll = useCallback(
170171
(e) => {
@@ -202,21 +203,21 @@ export function DVirtualScroll<T>(props: DVirtualScrollProps<T>) {
202203
overflowX: isUndefined(dWidth) ? undefined : 'auto',
203204
overflowY: isUndefined(dHeight) ? undefined : 'auto',
204205
},
205-
[`data-d-virtual-scroll-${id}`]: 'true',
206+
[`data-${dPrefix}virtual-scroll-${id}`]: 'true',
206207
onScroll: handleScroll,
207208
},
208209
[
209210
reference,
210211
<div
211-
key={`d-virtual-scroll-pre-fill-${id}`}
212+
key={`${dPrefix}virtual-scroll-pre-fill-${id}`}
212213
style={{
213214
...fillSize[0],
214215
display: isUndefined(dWidth) ? undefined : 'inline-block',
215216
}}
216217
></div>,
217218
...list,
218219
<div
219-
key={`d-virtual-scroll-sub-fill-${id}`}
220+
key={`${dPrefix}virtual-scroll-sub-fill-${id}`}
220221
style={{
221222
...fillSize[1],
222223
display: isUndefined(dWidth) ? undefined : 'inline-block',

packages/ui/src/hooks/async.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ class AsyncCapture extends BaseAsyncCapture {
9393
for (const cb of this.tids.values()) {
9494
cb();
9595
}
96+
this.onDestroy$.next();
97+
this.onDestroy$.complete();
98+
9699
for (const group of this.groups.values()) {
97100
group.clearAll();
98101
}

packages/ui/src/hooks/id.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
1+
import { isUndefined } from 'lodash';
12
import { useEffect } from 'react';
23
import { useImmer } from 'use-immer';
34

45
let id = 0;
56
export function getID() {
67
return (id += 1);
78
}
8-
9-
export function useId() {
9+
export function useId(): number;
10+
export function useId(size: number): number[];
11+
export function useId(size?: number): number[] | number {
1012
const [id, setId] = useImmer(0);
13+
const [ids, setIds] = useImmer(Array(size).fill(0));
1114

1215
useEffect(() => {
13-
setId(getID());
14-
}, [setId]);
16+
if (isUndefined(size)) {
17+
setId(getID());
18+
} else {
19+
const arr: number[] = [];
20+
for (let n = 0; n < size; n++) {
21+
arr.push(getID());
22+
}
23+
setIds(arr);
24+
}
25+
}, [setId, setIds, size]);
1526

16-
return id;
27+
return isUndefined(size) ? id : ids;
1728
}

0 commit comments

Comments
 (0)