use-user-group-resource.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import {
  2. useSWRxAncestorExternalUserGroups,
  3. useSWRxChildExternalUserGroupList,
  4. useSWRxExternalUserGroup,
  5. useSWRxExternalUserGroupRelationList,
  6. useSWRxExternalUserGroupRelations,
  7. } from '~/features/external-user-group/client/stores/external-user-group';
  8. import {
  9. useSWRxAncestorUserGroups,
  10. useSWRxChildUserGroupList, useSWRxUserGroup, useSWRxUserGroupRelationList, useSWRxUserGroupRelations,
  11. } from '~/stores/user-group';
  12. // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
  13. export const useUserGroup = (userGroupId: string, isExternalGroup: boolean) => {
  14. const userGroupRes = useSWRxUserGroup(isExternalGroup ? null : userGroupId);
  15. const externalUserGroupRes = useSWRxExternalUserGroup(isExternalGroup ? userGroupId : null);
  16. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  17. };
  18. // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
  19. export const useUserGroupRelations = (userGroupId: string, isExternalGroup: boolean) => {
  20. const userGroupRes = useSWRxUserGroupRelations(isExternalGroup ? null : userGroupId);
  21. const externalUserGroupRes = useSWRxExternalUserGroupRelations(isExternalGroup ? userGroupId : null);
  22. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  23. };
  24. // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
  25. export const useChildUserGroupList = (userGroupId: string, isExternalGroup: boolean) => {
  26. const userGroupRes = useSWRxChildUserGroupList(
  27. !isExternalGroup ? [userGroupId] : [], true,
  28. );
  29. const externalUserGroupRes = useSWRxChildExternalUserGroupList(
  30. isExternalGroup ? [userGroupId] : [], true,
  31. );
  32. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  33. };
  34. // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
  35. export const useUserGroupRelationList = (userGroupIds: string[], isExternalGroup: boolean) => {
  36. const userGroupRes = useSWRxUserGroupRelationList(isExternalGroup ? null : userGroupIds);
  37. const externalUserGroupRes = useSWRxExternalUserGroupRelationList(isExternalGroup ? userGroupIds : null);
  38. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  39. };
  40. // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
  41. export const useAncestorUserGroups = (userGroupId: string, isExternalGroup: boolean) => {
  42. const userGroupRes = useSWRxAncestorUserGroups(isExternalGroup ? null : userGroupId);
  43. const externalUserGroupRes = useSWRxAncestorExternalUserGroups(isExternalGroup ? userGroupId : null);
  44. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  45. };