Skip to content

Commit 79a4eae

Browse files
committed
feat(examples): update useRef types and initial values
- Change `useRef<string>()` to `useRef<string>(null)` in ImagePicker - Update return types of `useLatestRef` from `MutableRefObject` to `RefObject` - Adjust `clearTimerRef` parameter type to `RefObject` - Correct ref types and initial values in Decode and Encode pages - Ensure consistency with React's ref handling and type safety
1 parent e1f3970 commit 79a4eae

File tree

5 files changed

+13
-13
lines changed

5 files changed

+13
-13
lines changed

packages/examples/app/js/components/ImagePicker/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export interface ImageUploadProps {
2020

2121
export default memo(function ImageUpload(props: ImageUploadProps) {
2222
const { message } = useApp();
23-
const urlRef = useRef<string>();
23+
const urlRef = useRef<string>(null);
2424
const { children, preview } = props;
2525
const [dragging, setDragging] = useState(false);
2626
const [value, setValue] = useControllableValue<string>(props);

packages/examples/app/js/hooks/useLatestRef.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ import React, { useMemo, useRef } from 'react';
88
* @function useLatestRef
99
* @description 生成自更新 useRef 对象
1010
*/
11-
export default function useLatestRef<T = undefined>(): React.MutableRefObject<T | undefined>;
11+
export default function useLatestRef<T = undefined>(): React.RefObject<T | undefined>;
1212
/**
1313
* @function useLatestRef
1414
* @description 生成自更新 useRef 对象
1515
* @param value 引用值
1616
*/
17-
export default function useLatestRef<T>(value: T): React.MutableRefObject<T>;
17+
export default function useLatestRef<T>(value: T): React.RefObject<T>;
1818
/**
1919
* @function useLatestRef
2020
* @description 生成自更新 useRef 对象
2121
* @param value 引用值
2222
*/
23-
export default function useLatestRef<T = undefined>(value?: T): React.MutableRefObject<T | undefined> {
23+
export default function useLatestRef<T = undefined>(value?: T): React.RefObject<T | undefined> {
2424
const valueRef = useRef(value);
2525

2626
// https://github.com/alibaba/hooks/issues/728

packages/examples/app/js/hooks/useLazyState.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ type UseLazyState<S> = [state: S, setLazyState: Dispatch<S>];
1818
* @description 清理延时器
1919
* @param timerRef 延时器引用
2020
*/
21-
function clearTimerRef(timerRef: React.MutableRefObject<Timeout | null>): void {
21+
function clearTimerRef(timerRef: React.RefObject<Timeout | null>): void {
2222
const { current: timer } = timerRef;
2323

2424
if (timer != null) {

packages/examples/app/js/pages/Decode.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const { Item: FormItem, useForm, useWatch } = Form;
2222

2323
interface OverviewLocateProps {
2424
state?: DecodeResultMessage;
25-
currentRef: React.MutableRefObject<string | undefined>;
25+
currentRef: React.RefObject<string | null>;
2626
}
2727

2828
const OverviewLocate = memo(function OverviewLocate({ state, currentRef }: OverviewLocateProps) {
@@ -57,7 +57,7 @@ interface LocateProps {
5757
name: string;
5858
image: ImageBitmap;
5959
items: DecodedItem[];
60-
currentRef: React.MutableRefObject<string | undefined>;
60+
currentRef: React.RefObject<string | null>;
6161
trigger: (loading: boolean, onClick: () => void) => React.ReactNode;
6262
}
6363

@@ -72,9 +72,9 @@ function cloneImageBitmap(image: ImageBitmap): ImageBitmap {
7272

7373
const Locate = memo(function Locate({ uid, name, items, image, trigger, currentRef }: LocateProps) {
7474
const lockRef = useRef(false);
75-
const workerRef = useRef<Worker>();
7675
const { message: info } = useApp();
77-
const prevUidRef = useRef<string>();
76+
const workerRef = useRef<Worker>(null);
77+
const prevUidRef = useRef<string>(null);
7878
const [src, setSrc] = useState<string>();
7979
const [visible, setVisible] = useState(false);
8080
const [loading, setLoading] = useLazyState(false);
@@ -225,7 +225,7 @@ const Details = memo(function Details({ name, item }: DetailsProps) {
225225

226226
interface ResultProps {
227227
state?: DecodeResultMessage;
228-
currentRef: React.MutableRefObject<string | undefined>;
228+
currentRef: React.RefObject<string | null>;
229229
}
230230

231231
const Result = memo(function Result({ state, currentRef }: ResultProps) {
@@ -307,9 +307,9 @@ interface FormValues {
307307

308308
export default memo(function Encode() {
309309
const lockRef = useRef(false);
310-
const workerRef = useRef<Worker>();
311310
const [form] = useForm<FormValues>();
312-
const currentLocateRef = useRef<string>();
311+
const workerRef = useRef<Worker>(null);
312+
const currentLocateRef = useRef<string>(null);
313313
const [loading, setLoading] = useLazyState(false);
314314
const [state, setState] = useState<DecodeResultMessage>();
315315

packages/examples/app/js/pages/Encode.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ const Result = memo(function Result({ value }: ResultProps) {
4444

4545
export default memo(function Encode() {
4646
const lockRef = useRef(false);
47-
const workerRef = useRef<Worker>();
4847
const [form] = useForm<FormValues>();
48+
const workerRef = useRef<Worker>(null);
4949
const [loading, setLoading] = useLazyState(false);
5050
const [state, setState] = useState<EncodeResultMessage>();
5151

0 commit comments

Comments
 (0)