tut modal redirect fixes

This commit is contained in:
seaznCode 2026-01-19 18:34:06 +01:00
parent 9999e45c1d
commit 3bdd4ae330
4 changed files with 18 additions and 10 deletions

View File

@ -184,6 +184,7 @@ export default function CompanyAdditionalInformationPage() {
// NEW: smooth redirect // NEW: smooth redirect
const [redirectTo, setRedirectTo] = useState<string | null>(null) const [redirectTo, setRedirectTo] = useState<string | null>(null)
const redirectOnceRef = useRef(false) const redirectOnceRef = useRef(false)
const suppressAutoRedirectRef = useRef(false)
const smoothReplace = useCallback((to: string) => { const smoothReplace = useCallback((to: string) => {
if (redirectOnceRef.current) return if (redirectOnceRef.current) return
redirectOnceRef.current = true redirectOnceRef.current = true
@ -194,6 +195,7 @@ export default function CompanyAdditionalInformationPage() {
// NEW: hard block if step already done OR all steps done // NEW: hard block if step already done OR all steps done
useEffect(() => { useEffect(() => {
if (statusLoading || !userStatus) return if (statusLoading || !userStatus) return
if (suppressAutoRedirectRef.current) return
const allDone = const allDone =
!!userStatus.email_verified && !!userStatus.email_verified &&
!!userStatus.documents_uploaded && !!userStatus.documents_uploaded &&
@ -304,11 +306,12 @@ export default function CompanyAdditionalInformationPage() {
}) })
// Refresh user status to update profile completion state // Refresh user status to update profile completion state
suppressAutoRedirectRef.current = true
await refreshStatus() await refreshStatus()
// Redirect back to tutorial modal after short delay // Redirect back to tutorial modal after short delay
setTimeout(() => { setTimeout(() => {
router.push('/quickaction-dashboard?tutorial=true') smoothReplace('/quickaction-dashboard?tutorial=true')
}, 1500) }, 1500)
} catch (error: any) { } catch (error: any) {

View File

@ -385,11 +385,12 @@ export default function PersonalAdditionalInformationPage() {
}) })
// Refresh user status to update profile completion state // Refresh user status to update profile completion state
suppressAutoRedirectRef.current = true
await refreshStatus() await refreshStatus()
// Redirect back to tutorial modal after short delay // Redirect back to tutorial modal after short delay
setTimeout(() => { setTimeout(() => {
router.push('/quickaction-dashboard?tutorial=true') smoothReplace('/quickaction-dashboard?tutorial=true')
}, 1500) }, 1500)
} catch (error: any) { } catch (error: any) {
@ -414,6 +415,7 @@ export default function PersonalAdditionalInformationPage() {
// NEW: smooth redirect // NEW: smooth redirect
const [redirectTo, setRedirectTo] = useState<string | null>(null) const [redirectTo, setRedirectTo] = useState<string | null>(null)
const redirectOnceRef = useRef(false) const redirectOnceRef = useRef(false)
const suppressAutoRedirectRef = useRef(false)
const smoothReplace = useCallback((to: string) => { const smoothReplace = useCallback((to: string) => {
if (redirectOnceRef.current) return if (redirectOnceRef.current) return
redirectOnceRef.current = true redirectOnceRef.current = true
@ -424,6 +426,7 @@ export default function PersonalAdditionalInformationPage() {
// NEW: hard block if step already done OR all steps done // NEW: hard block if step already done OR all steps done
useEffect(() => { useEffect(() => {
if (statusLoading || !userStatus) return if (statusLoading || !userStatus) return
if (suppressAutoRedirectRef.current) return
const allDone = const allDone =
!!userStatus.email_verified && !!userStatus.email_verified &&
!!userStatus.documents_uploaded && !!userStatus.documents_uploaded &&

View File

@ -277,10 +277,9 @@ export default function CompanySignContractPage() {
// Refresh user status to update contract signed state // Refresh user status to update contract signed state
await refreshStatus() await refreshStatus()
// Redirect back to tutorial modal after short delay // Redirect back to tutorial modal (avoid intermediate dashboard redirect)
setTimeout(() => { suppressAutoRedirectRef.current = true
router.push('/quickaction-dashboard?tutorial=true') smoothReplace('/quickaction-dashboard?tutorial=true')
}, 2000)
} catch (error: unknown) { } catch (error: unknown) {
console.error('Contract signing error:', error) console.error('Contract signing error:', error)
@ -299,6 +298,7 @@ export default function CompanySignContractPage() {
// NEW: hard block if step already done OR all steps done // NEW: hard block if step already done OR all steps done
const [redirectTo, setRedirectTo] = useState<string | null>(null) const [redirectTo, setRedirectTo] = useState<string | null>(null)
const redirectOnceRef = useRef(false) const redirectOnceRef = useRef(false)
const suppressAutoRedirectRef = useRef(false)
const smoothReplace = useCallback((to: string) => { const smoothReplace = useCallback((to: string) => {
if (redirectOnceRef.current) return if (redirectOnceRef.current) return
redirectOnceRef.current = true redirectOnceRef.current = true
@ -308,6 +308,7 @@ export default function CompanySignContractPage() {
useEffect(() => { useEffect(() => {
if (statusLoading || !userStatus) return if (statusLoading || !userStatus) return
if (suppressAutoRedirectRef.current) return
const allDone = const allDone =
!!userStatus.email_verified && !!userStatus.email_verified &&
!!userStatus.documents_uploaded && !!userStatus.documents_uploaded &&

View File

@ -165,6 +165,7 @@ export default function PersonalSignContractPage() {
// NEW: hard block if step already done OR all steps done // NEW: hard block if step already done OR all steps done
const [redirectTo, setRedirectTo] = useState<string | null>(null) const [redirectTo, setRedirectTo] = useState<string | null>(null)
const redirectOnceRef = useRef(false) const redirectOnceRef = useRef(false)
const suppressAutoRedirectRef = useRef(false)
const smoothReplace = useCallback((to: string) => { const smoothReplace = useCallback((to: string) => {
if (redirectOnceRef.current) return if (redirectOnceRef.current) return
redirectOnceRef.current = true redirectOnceRef.current = true
@ -180,6 +181,7 @@ export default function PersonalSignContractPage() {
useEffect(() => { useEffect(() => {
if (statusLoading || !userStatus) return if (statusLoading || !userStatus) return
if (suppressAutoRedirectRef.current) return
const allDone = const allDone =
!!userStatus.email_verified && !!userStatus.email_verified &&
!!userStatus.documents_uploaded && !!userStatus.documents_uploaded &&
@ -314,10 +316,9 @@ export default function PersonalSignContractPage() {
// Refresh user status to update contract signed state // Refresh user status to update contract signed state
await refreshStatus() await refreshStatus()
// Redirect back to tutorial modal after short delay // Redirect back to tutorial modal (avoid intermediate dashboard redirect)
setTimeout(() => { suppressAutoRedirectRef.current = true
router.push('/quickaction-dashboard?tutorial=true') smoothReplace('/quickaction-dashboard?tutorial=true')
}, 2000)
} catch (error: unknown) { } catch (error: unknown) {
console.error('Contract signing error:', error) console.error('Contract signing error:', error)