Files
abode/src/react/hooks/data/residents.ts
T
2026-06-29 23:07:14 +00:00

36 lines
1.1 KiB
TypeScript

import { useMemo } from "react";
import {
loadAllResidents,
loadResidentsByAbodeId,
loadResidentsByUserId,
} from "../../store/loaders/residents.js";
import { useSelector } from "../../store/react.js";
import { getResidents } from "../../store/slices/residents.js";
import { useLoad } from "../useLoad.js";
export function useDataAllResidents() {
const residents = useSelector(getResidents);
const status = useLoad(loadAllResidents);
return { ...status, residents };
}
export function useDataResidentsByAbodeId(aid: string) {
const allResidents = useSelector(getResidents);
const status = useLoad(loadResidentsByAbodeId, { aid });
const residents = useMemo(
() => Object.values(allResidents).filter((x) => x.aid === aid),
[allResidents, aid]
);
return { ...status, residents };
}
export function useDataResidentsByUserId(uid: string) {
const allResidents = useSelector(getResidents);
const status = useLoad(loadResidentsByUserId, { uid });
const residents = useMemo(
() => Object.values(allResidents).filter((x) => x.uid === uid),
[allResidents, uid]
);
return { ...status, residents };
}