diff --git a/web/apps/photos/src/components/Sidebar.tsx b/web/apps/photos/src/components/Sidebar.tsx index 73f25db465..02ff121a46 100644 --- a/web/apps/photos/src/components/Sidebar.tsx +++ b/web/apps/photos/src/components/Sidebar.tsx @@ -218,13 +218,10 @@ const UserDetailsSection: React.FC = ({ onShowPlanSelector, }) => { const userDetails = useUserDetailsSnapshot(); - const [memberSubscriptionManageView, setMemberSubscriptionManageView] = - useState(false); - - const openMemberSubscriptionManage = () => - setMemberSubscriptionManageView(true); - const closeMemberSubscriptionManage = () => - setMemberSubscriptionManageView(false); + const { + show: showManageMemberSubscription, + props: manageMemberSubscriptionVisibilityProps, + } = useModalVisibility(); useEffect(() => { if (sidebarOpen) void syncUserDetails(); @@ -240,7 +237,7 @@ const UserDetailsSection: React.FC = ({ const handleSubscriptionCardClick = () => { if (isNonAdminFamilyMember) { - openMemberSubscriptionManage(); + showManageMemberSubscription(); } else { if ( userDetails && @@ -275,11 +272,10 @@ const UserDetailsSection: React.FC = ({ /> )} - {isNonAdminFamilyMember && ( - )} @@ -379,7 +375,15 @@ const SubscriptionStatus: React.FC = ({ ); }; -function MemberSubscriptionManage({ open, userDetails, onClose }) { +type ManageMemberSubscriptionProps = ModalVisibilityProps & { + userDetails: UserDetails; +}; + +const ManageMemberSubscription: React.FC = ({ + open, + onClose, + userDetails, +}) => { const { showMiniDialog } = useBaseContext(); const fullScreen = useIsSmallWidth(); @@ -394,10 +398,6 @@ function MemberSubscriptionManage({ open, userDetails, onClose }) { }, }); - if (!userDetails) { - return <>; - } - return ( @@ -439,7 +439,7 @@ function MemberSubscriptionManage({ open, userDetails, onClose }) { ); -} +}; type ShortcutSectionProps = SectionProps & { collectionSummaries: SidebarProps["collectionSummaries"];