import { useEffect, useState } from 'react'; import { Artist, ArtistResource } from '@/back-api'; import { useServiceContext } from '@/service/ServiceContext'; import { SessionServiceProps } from '@/service/session'; import { DataStoreType, useDataStore } from '@/utils/data-store'; export type ArtistServiceProps = { store: DataStoreType; }; export const useArtistService = (): ArtistServiceProps => { const { artist } = useServiceContext(); return artist; }; export const useArtistServiceWrapped = ( session: SessionServiceProps ): ArtistServiceProps => { const store = useDataStore({ restApiName: 'ARTIST', primaryKey: 'id', getsCall: () => { return ArtistResource.gets({ restConfig: session.getRestConfig(), }); }, }); return { store }; }; export const useSpecificArtist = (id: number | undefined) => { const [dataArtist, setDataArtist] = useState(undefined); const { store } = useArtistService(); useEffect(() => { setDataArtist(store.get(id)); }, [store.data]); return { dataArtist }; };