CI / install-and-build (pull_request) Successful in 1m29s
CI / format (pull_request) Successful in 51s
CI / typecheck-source (pull_request) Successful in 41s
CI / typecheck-tests (pull_request) Successful in 39s
CI / test (pull_request) Successful in 51s
CI / lint (pull_request) Successful in 21s
Co-Authored-By: gpt-5.6-terra <noreply@openai.com>
36 lines
1.1 KiB
TypeScript
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 };
|
|
}
|