diff --git a/src/pages/OldCommon/components/CommonDetailContainer/CommonMenu/CommonMenu.tsx b/src/pages/OldCommon/components/CommonDetailContainer/CommonMenu/CommonMenu.tsx index 2bd70b1cbb..c2fccb8072 100644 --- a/src/pages/OldCommon/components/CommonDetailContainer/CommonMenu/CommonMenu.tsx +++ b/src/pages/OldCommon/components/CommonDetailContainer/CommonMenu/CommonMenu.tsx @@ -338,7 +338,6 @@ const CommonMenu: FC = (props) => { onClose={handleMenuClose} commonId={common.id} memberCount={common.memberCount} - memberCircleIds={Object.values(currentCommonMember.circles.map)} /> )} { commonId: string; memberCount: number; - memberCircleIds: string[]; onSuccessfulLeave?: () => void; isSubCommon?: boolean; } @@ -30,31 +28,18 @@ const LeaveCommonModal: FC = (props) => { onClose, commonId, memberCount, - memberCircleIds = [], onSuccessfulLeave, isSubCommon = false, } = props; - const { - loading: areMemberAmountsLoading, - fetched: areMemberAmountsFetched, - data: memberAmountsWithCircleId, - fetchCommonMembersWithCircleIdAmount, - } = useCommonMembersWithCircleIdsAmount(); const dispatch = useDispatch(); const { notify } = useNotification(); const history = useHistory(); const [isLeaving, setIsLeaving] = useState(false); const [errorText, setErrorText] = useState(""); + const [isLastMemberInCircle, setIsLastMemberInCircle] = useState(false); const user = useSelector(selectUser()); const userId = user?.uid; const isDeleteCommonRequest = memberCount === 1; - const isLoading = !isDeleteCommonRequest && !areMemberAmountsFetched; - const isLastMemberInCircle = useMemo( - () => - areMemberAmountsFetched && - memberAmountsWithCircleId.some(({ amount }) => amount <= 1), - [areMemberAmountsFetched, memberAmountsWithCircleId], - ); const commonWord = isSubCommon ? "space" : "common"; const handleLeave = useCallback(() => { @@ -79,6 +64,14 @@ const LeaveCommonModal: FC = (props) => { : ""; setIsLeaving(false); + setIsLastMemberInCircle( + Boolean( + isRequestError(error) && + error.response?.data?.error?.includes( + ErrorCode.LastInCriticalCircle, + ), + ), + ); setErrorText(errorText); if (!isFinishedSuccessfully) { @@ -96,25 +89,6 @@ const LeaveCommonModal: FC = (props) => { ); }, [dispatch, notify, history, commonId, userId]); - useEffect(() => { - if ( - isDeleteCommonRequest || - areMemberAmountsLoading || - areMemberAmountsFetched - ) { - return; - } - - fetchCommonMembersWithCircleIdAmount(commonId, memberCircleIds); - }, [ - isDeleteCommonRequest, - areMemberAmountsLoading, - areMemberAmountsFetched, - fetchCommonMembersWithCircleIdAmount, - commonId, - memberCircleIds, - ]); - const renderStep = () => { if (isDeleteCommonRequest) { return ( @@ -146,7 +120,7 @@ const LeaveCommonModal: FC = (props) => { title={`Leave ${commonWord}`} className="leave-common-modal" > - {isLoading ? : renderStep()} + {renderStep()} ); }; diff --git a/src/pages/common/providers/CommonData/CommonData.tsx b/src/pages/common/providers/CommonData/CommonData.tsx index 212c0b232e..0cbbe90ef8 100644 --- a/src/pages/common/providers/CommonData/CommonData.tsx +++ b/src/pages/common/providers/CommonData/CommonData.tsx @@ -284,7 +284,6 @@ const CommonData: FC = (props) => { onClose={handleMenuClose} commonId={common.id} memberCount={common.memberCount} - memberCircleIds={Object.values(commonMember.circles.map)} onSuccessfulLeave={ selectedMenuItem === CommonMenuItem.LeaveProject ? handleSuccessfulProjectLeave