diff --git a/__snapshots__/features/home/pages/GenericHome.native.test.tsx.native-snap b/__snapshots__/features/home/pages/GenericHome.native.test.tsx.native-snap
index 55f8dc589e6..c8b1e86242a 100644
--- a/__snapshots__/features/home/pages/GenericHome.native.test.tsx.native-snap
+++ b/__snapshots__/features/home/pages/GenericHome.native.test.tsx.native-snap
@@ -145,6 +145,40 @@ exports[`GenericHome should display real content 1`] = `
]
}
/>
+
+
+
`;
@@ -293,5 +327,39 @@ exports[`GenericHome should display skeleton 1`] = `
]
}
/>
+
+
+
`;
diff --git a/__snapshots__/features/home/pages/Home.native.test.tsx.native-snap b/__snapshots__/features/home/pages/Home.native.test.tsx.native-snap
index e80bb1b4ab3..625337d80ec 100644
--- a/__snapshots__/features/home/pages/Home.native.test.tsx.native-snap
+++ b/__snapshots__/features/home/pages/Home.native.test.tsx.native-snap
@@ -421,5 +421,39 @@ exports[`Home page should render correctly 1`] = `
]
}
/>
+
+
+
`;
diff --git a/__snapshots__/features/home/pages/ThematicHome.native.test.tsx.native-snap b/__snapshots__/features/home/pages/ThematicHome.native.test.tsx.native-snap
index ea10447e0d3..f6fc49b4b52 100644
--- a/__snapshots__/features/home/pages/ThematicHome.native.test.tsx.native-snap
+++ b/__snapshots__/features/home/pages/ThematicHome.native.test.tsx.native-snap
@@ -348,6 +348,40 @@ exports[`ThematicHome should render correctly 1`] = `
]
}
/>
+
+
+
-
-
-
-
-
- Mon profil
-
-
-
-
+
+
+
-
- Paramètres du compte
-
-
+
+ >
+ Mon profil
+
+
+
+
+ Paramètres du compte
+
+
+
-
-
- BicolorProfile-SVG-Mock
-
-
-
-
+
+ BicolorProfile-SVG-Mock
+
+
+
- Informations personnelles
-
-
-
+ />
-
- section-row-navigable-icon-SVG-Mock
+
+ Informations personnelles
+
+
+
+ section-row-navigable-icon-SVG-Mock
+
+
+
-
-
-
-
- undefined-SVG-Mock
-
-
-
-
- Notifications
-
-
-
- section-row-navigable-icon-SVG-Mock
+ undefined-SVG-Mock
+
+
+
+ Notifications
+
+
+
+
+
+ section-row-navigable-icon-SVG-Mock
+
+
+
-
-
-
- undefined-SVG-Mock
-
-
-
-
+
+
+ undefined-SVG-Mock
+
+
+
- Partager ma position
+
+ Partager ma position
+
-
-
-
-
+
-
- Case à cocher -
- cochée
-
+ />
-
+ Case à cocher -
+ cochée
+
+
-
- undefined-SVG-Mock
-
+
+
+ undefined-SVG-Mock
+
+
@@ -640,848 +642,835 @@ exports[`Profile component should render correctly 1`] = `
-
-
-
- Aides
-
-
-
+
+ Aides
+
+
+
-
- undefined-SVG-Mock
-
-
-
-
-
+
+ undefined-SVG-Mock
+
+
+
- Comment ça marche ?
-
-
-
+ />
-
- section-row-navigable-icon-SVG-Mock
+
+ Comment ça marche ?
+
+
+
+ section-row-navigable-icon-SVG-Mock
+
+
+
-
-
-
-
- undefined-SVG-Mock
-
-
-
-
+
+ undefined-SVG-Mock
+
+
+
+
- Centre d’aide
-
+
+ Centre d’aide
+
+
-
-
-
- Autres
-
-
-
+
+ Autres
+
+
+
-
- undefined-SVG-Mock
-
-
-
-
-
+
+ undefined-SVG-Mock
+
+
+
- Accessibilité
-
-
-
+ />
-
- section-row-navigable-icon-SVG-Mock
+
+ Accessibilité
+
+
+
+ section-row-navigable-icon-SVG-Mock
+
+
+
-
-
-
-
- undefined-SVG-Mock
-
-
-
-
+
+ undefined-SVG-Mock
+
+
+
- Informations légales
-
-
-
+ />
-
- section-row-navigable-icon-SVG-Mock
+
+ Informations légales
+
+
+
+ section-row-navigable-icon-SVG-Mock
+
+
+
-
-
-
- undefined-SVG-Mock
-
-
-
-
-
+
+ undefined-SVG-Mock
+
+
+
- Confidentialité
-
-
-
+ />
-
- section-row-navigable-icon-SVG-Mock
+
+ Confidentialité
+
+
+
+ section-row-navigable-icon-SVG-Mock
+
+
+
-
-
-
- Partager le pass Culture
-
-
-
-
+
+ Partager le pass Culture
+
+
+
+
-
+
@@ -1489,199 +1478,199 @@ exports[`Profile component should render correctly 1`] = `
style={
Array [
Object {
- "paddingRight": 32,
+ "flexGrow": 1,
+ "flexShrink": 1,
+ "marginRight": 16,
+ "textAlign": "start",
},
]
}
>
-
- Partage le pass Culture
-
-
- Recommande le bon plan à tes amis !
-
+
+ Partage le pass Culture
+
+
+
+ Recommande le bon plan à tes amis !
+
+
-
-
-
-
- undefined-SVG-Mock
-
+
+
+
+ undefined-SVG-Mock
+
+
+
-
-
-
-
- Suivre le pass Culture
-
-
-
+
+ Suivre le pass Culture
+
+
+
-
- undefined-SVG-Mock
-
+
+
+ undefined-SVG-Mock
+
+
+
+
+ Instagram
+
-
-
- Instagram
-
-
-
-
- undefined-SVG-Mock
-
+
+
+ undefined-SVG-Mock
+
+
+
+
+ Twitter
+
-
-
- Twitter
-
-
-
-
- undefined-SVG-Mock
-
+
+
+ undefined-SVG-Mock
+
+
+
+
+ Tiktok
+
-
-
- Tiktok
-
-
-
-
-
- undefined-SVG-Mock
-
-
-
-
-
- Facebook
-
+
+
+
+ undefined-SVG-Mock
+
+
+
+
+
+ Facebook
+
+
-
-
-
-
-
+
+
+ />
-
-
- undefined-SVG-Mock
-
-
-
+
+ }
+ testID="Déconnexion"
+ >
-
+
+ undefined-SVG-Mock
+
+
+
+
- Déconnexion
-
+
+ Déconnexion
+
+
-
-
-
-
-
-
- Version 1.10.5
-
-
+
+
+
+ Version 1.10.5
+
+
+
-
- undefined-SVG-Mock
-
+
+
+ undefined-SVG-Mock
+
+
+
-
+
+
+
-
+ ],
+ ]
+ }
+ />
-
+
= ({
) : null}
+
)
}
diff --git a/src/features/profile/pages/Profile.tsx b/src/features/profile/pages/Profile.tsx
index 812390dfa0d..97d3c0415c0 100644
--- a/src/features/profile/pages/Profile.tsx
+++ b/src/features/profile/pages/Profile.tsx
@@ -1,7 +1,7 @@
import { useFocusEffect } from '@react-navigation/native'
import debounce from 'lodash/debounce'
import React, { useCallback, useEffect, useRef, useState } from 'react'
-import { NativeScrollEvent, Platform, ScrollView } from 'react-native'
+import { NativeScrollEvent, Platform, ScrollView, View } from 'react-native'
import styled from 'styled-components/native'
import { v4 as uuidv4 } from 'uuid'
@@ -25,6 +25,7 @@ import { Li } from 'ui/components/Li'
import { BannerWithBackground } from 'ui/components/ModuleBanner/BannerWithBackground'
import { Section } from 'ui/components/Section'
import { SectionRow } from 'ui/components/SectionRow'
+import { StatusBarBlurredBackground } from 'ui/components/statusBar/statusBarBlurredBackground'
import { VerticalUl } from 'ui/components/Ul'
import { useVersion } from 'ui/hooks/useVersion'
import { Bell } from 'ui/svg/icons/Bell'
@@ -113,151 +114,154 @@ const OnlineProfile: React.FC = () => {
}, [])
return (
-
-
-
-
-
-
- {!!isLoggedIn && (
+
+
+
+
+
+
+
+ {!!isLoggedIn && (
+
+
+
+ )}
- )}
-
-
-
-
- {
- switchGeolocation()
- debouncedLogLocationToggle(!isGeolocSwitchActive)
- }}
- toggleLabel="Partager ma position"
- />
-
-
-
-
-
-
-
- analytics.logConsultTutorial('profile')}
- icon={LifeBuoy}
- />
-
-
-
+ {
+ switchGeolocation()
+ debouncedLogLocationToggle(!isGeolocSwitchActive)
+ }}
+ toggleLabel="Partager ma position"
+ />
+
+
+
+
+
+
+
+ analytics.logConsultTutorial('profile')}
+ icon={LifeBuoy}
+ />
+
+
+
+
+
+
+
+ {Platform.OS !== 'web' && (
+
+
+
+
+ Partage le pass Culture
+
+ Recommande le bon plan à tes amis !
+
+
+
+
+ )}
+
+ {!!isLoggedIn && (
+
-
-
- {Platform.OS !== 'web' && (
-
+ )}
+
-
-
- Partage le pass Culture
-
- Recommande le bon plan à tes amis !
-
-
+ {version}
-
- )}
-
- {!!isLoggedIn && (
-
- )}
-
-
- {version}
-
-
-
-
-
-
-
-
-
+
+
+
+
+
)
}
diff --git a/src/ui/components/headers/AnimatedBlurHeader.tsx b/src/ui/components/headers/AnimatedBlurHeader.tsx
index c3647a5602a..f370997e484 100644
--- a/src/ui/components/headers/AnimatedBlurHeader.tsx
+++ b/src/ui/components/headers/AnimatedBlurHeader.tsx
@@ -18,6 +18,7 @@ export const AnimatedBlurHeader = ({
style,
}: Props) => {
// There is an issue with the blur on Android: we chose not to render it and use a white background
+ // https://github.com/Kureev/react-native-blur/issues/511
if (Platform.OS === 'android') return null
return (
diff --git a/src/ui/components/headers/BlurHeader.tsx b/src/ui/components/headers/BlurHeader.tsx
index d628ff37a96..2ceae55e918 100644
--- a/src/ui/components/headers/BlurHeader.tsx
+++ b/src/ui/components/headers/BlurHeader.tsx
@@ -12,6 +12,7 @@ type Props = {
export const BlurHeader = ({ height, blurAmount = 8, blurType = 'light' }: Props) => {
// There is an issue with the blur on Android: we chose not to render it and use a white background
+ // https://github.com/Kureev/react-native-blur/issues/511
if (Platform.OS === 'android') return null
return (
diff --git a/src/ui/components/statusBar/statusBarBlurredBackground.tsx b/src/ui/components/statusBar/statusBarBlurredBackground.tsx
new file mode 100644
index 00000000000..ea6a58576c3
--- /dev/null
+++ b/src/ui/components/statusBar/statusBarBlurredBackground.tsx
@@ -0,0 +1,36 @@
+import React from 'react'
+import { Platform } from 'react-native'
+import styled from 'styled-components/native'
+
+import { BlurView } from 'ui/components/BlurView'
+import { useCustomSafeInsets } from 'ui/theme/useCustomSafeInsets'
+
+export const StatusBarBlurredBackground = () => {
+ const { top } = useCustomSafeInsets()
+
+ // There is an issue with the blur on Android: we chose not to render it and use a white background
+ // https://github.com/Kureev/react-native-blur/issues/511
+ return (
+
+ {Platform.OS === 'android' ? : }
+
+ )
+}
+
+const BlurredStatusBar = styled(BlurView)({
+ flex: 1,
+})
+
+const StatusBarContainer = styled.View<{ height: number }>(({ height }) => ({
+ position: 'absolute',
+ height,
+ left: 0,
+ right: 0,
+ overflow: 'hidden',
+ backdropFilter: 'blur(20px)',
+}))
+
+const AndroidWhiteStatusBar = styled.View(({ theme }) => ({
+ flex: 1,
+ backgroundColor: theme.colors.white,
+}))