File size: 802 Bytes
db242f8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
'use client';
import { useCallback } from 'react';
import useSWR from 'swr';
import { useStore } from '@/store';
type ModelInfo = {
id: number;
name: string;
};
export const useModelData = () => {
const { fetcher } = useStore();
const { data: models, isLoading: modelLoading } = useSWR<ModelInfo[]>(
'/product/models',
(url) =>
fetcher(url)
.then((res) => res.json())
.then((res) => res.data),
{
keepPreviousData: true,
revalidateOnFocus: false,
},
);
const getModelName = useCallback(
(id: number) => {
if (!models) return null;
const model = models.find((element: ModelInfo) => element.id === id);
return model ? model.name : null;
},
[models],
);
return { models, modelLoading, getModelName };
};
|