use-user-group-resource.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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,
  11. useSWRxUserGroup,
  12. useSWRxUserGroupRelationList,
  13. useSWRxUserGroupRelations,
  14. } from '~/stores/user-group';
  15. export const useUserGroup = (userGroupId: string, isExternalGroup: boolean) => {
  16. const userGroupRes = useSWRxUserGroup(isExternalGroup ? null : userGroupId);
  17. const externalUserGroupRes = useSWRxExternalUserGroup(
  18. isExternalGroup ? userGroupId : null,
  19. );
  20. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  21. };
  22. export const useUserGroupRelations = (
  23. userGroupId: string,
  24. isExternalGroup: boolean,
  25. ) => {
  26. const userGroupRes = useSWRxUserGroupRelations(
  27. isExternalGroup ? null : userGroupId,
  28. );
  29. const externalUserGroupRes = useSWRxExternalUserGroupRelations(
  30. isExternalGroup ? userGroupId : null,
  31. );
  32. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  33. };
  34. export const useChildUserGroupList = (
  35. userGroupId: string,
  36. isExternalGroup: boolean,
  37. ) => {
  38. const userGroupRes = useSWRxChildUserGroupList(
  39. !isExternalGroup ? [userGroupId] : [],
  40. true,
  41. );
  42. const externalUserGroupRes = useSWRxChildExternalUserGroupList(
  43. isExternalGroup ? [userGroupId] : [],
  44. true,
  45. );
  46. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  47. };
  48. export const useUserGroupRelationList = (
  49. userGroupIds: string[],
  50. isExternalGroup: boolean,
  51. ) => {
  52. const userGroupRes = useSWRxUserGroupRelationList(
  53. isExternalGroup ? null : userGroupIds,
  54. );
  55. const externalUserGroupRes = useSWRxExternalUserGroupRelationList(
  56. isExternalGroup ? userGroupIds : null,
  57. );
  58. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  59. };
  60. export const useAncestorUserGroups = (
  61. userGroupId: string,
  62. isExternalGroup: boolean,
  63. ) => {
  64. const userGroupRes = useSWRxAncestorUserGroups(
  65. isExternalGroup ? null : userGroupId,
  66. );
  67. const externalUserGroupRes = useSWRxAncestorExternalUserGroups(
  68. isExternalGroup ? userGroupId : null,
  69. );
  70. return isExternalGroup ? externalUserGroupRes : userGroupRes;
  71. };