UNPKG

cra-template-overwolf-typescript-redux

Version:

This is the official [Overwolf TypeScript Redux](https://github.com/AlbericoD/overwolf-modern-react-boilerplate) template for [Create React App](https://github.com/facebook/create-react-app).

42 lines (35 loc) 1.04 kB
import { RootReducer } from "app/shared/rootReducer"; import { useMemo } from "react"; import { useSelector } from "react-redux"; import { fromNow } from "lib/utils"; type Attributes = { quantity: number; label: string; }; type DataLabel = "events" | "infos"; type Data = Record<DataLabel, Attributes>; const getUpdatedAt = (date: number): string => `updated: ${fromNow(date)}`; export const useData = () => { const { events, infos } = useSelector( (state: RootReducer) => state.background ); const data: Data = useMemo(() => { const eventsQuantity = events.length; const infosQuantity = infos.length; return { events: { quantity: eventsQuantity, label: `Events (${getUpdatedAt( events[eventsQuantity - 1]?.timestamp ?? Date.now() )})`, }, infos: { quantity: infosQuantity, label: `Infos (${getUpdatedAt( infos[infosQuantity - 1]?.timestamp ?? Date.now() )})`, }, }; }, [events, infos]); return data; };