Skip to content

Commit edb7390

Browse files
authored
Merge pull request #53810 from nkdengineer/fix/53518
fix: Status message not cleared
2 parents 9ac6356 + 7e4892d commit edb7390

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/libs/Navigation/AppNavigator/AuthScreens.tsx

+28
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {useSearchRouterContext} from '@components/Search/SearchRouter/SearchRout
1212
import SearchRouterModal from '@components/Search/SearchRouter/SearchRouterModal';
1313
import TestToolsModal from '@components/TestToolsModal';
1414
import useActiveWorkspace from '@hooks/useActiveWorkspace';
15+
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1516
import useOnboardingFlowRouter from '@hooks/useOnboardingFlow';
1617
import usePermissions from '@hooks/usePermissions';
1718
import useResponsiveLayout from '@hooks/useResponsiveLayout';
@@ -235,6 +236,7 @@ function AuthScreens({session, lastOpenedPublicRoomID, initialLastUpdateIDApplie
235236
const rootNavigatorOptions = useRootNavigatorOptions();
236237
const {canUseDefaultRooms} = usePermissions();
237238
const {activeWorkspaceID} = useActiveWorkspace();
239+
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
238240
const {toggleSearch} = useSearchRouterContext();
239241

240242
const modal = useRef<OnyxTypes.Modal>({});
@@ -406,6 +408,32 @@ function AuthScreens({session, lastOpenedPublicRoomID, initialLastUpdateIDApplie
406408
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
407409
}, []);
408410

411+
const clearStatus = () => {
412+
User.clearCustomStatus();
413+
User.clearDraftCustomStatus();
414+
};
415+
useEffect(() => {
416+
if (!currentUserPersonalDetails.status?.clearAfter) {
417+
return;
418+
}
419+
const currentTime = new Date();
420+
const clearAfterTime = new Date(currentUserPersonalDetails.status.clearAfter);
421+
if (Number.isNaN(clearAfterTime.getTime())) {
422+
return;
423+
}
424+
const subMilisecondsTime = clearAfterTime.getTime() - currentTime.getTime();
425+
if (subMilisecondsTime > 0) {
426+
const timeoutID = setTimeout(() => {
427+
clearStatus();
428+
}, subMilisecondsTime);
429+
return () => {
430+
clearTimeout(timeoutID);
431+
};
432+
}
433+
434+
clearStatus();
435+
}, [currentUserPersonalDetails.status?.clearAfter]);
436+
409437
const CentralPaneScreenOptions: PlatformStackNavigationOptions = {
410438
...hideKeyboardOnSwipe,
411439
headerShown: false,

0 commit comments

Comments
 (0)