message loader

This commit is contained in:
2025-10-06 16:23:13 +02:00
parent bf0184d16c
commit 8537673144
4 changed files with 74 additions and 15 deletions
+31 -15
View File
@@ -9,8 +9,6 @@ export default ({ children }) => {
const [loadingMessage] = useGlobal("_loadingMessage");
const { isDesktopWeb = false, isMobileWeb = false } = useLayoutType();
const isWeb = isDesktopWeb || isMobileWeb;
return (
<>
{children}
@@ -36,29 +34,47 @@ export default ({ children }) => {
: { position: "absolute" },
]}
>
<LoaderIndicator
isWeb={isWeb}
message={isWeb ? loadingMessage : null}
/>
<LoaderIndicator message={loadingMessage ?? undefined} />
</View>
)}
</>
);
};
export const LoaderIndicator = ({ isWeb = false, message = null }) => {
export const LoaderIndicator = ({
message,
defaultMessage = "Chargement...",
messageStyle = null,
indicatorProps = {},
}) => {
const {
size = "large",
color = Palette.primary,
...restIndicatorProps
} = indicatorProps;
const resolvedMessage =
message === undefined ? defaultMessage : message;
const shouldShowMessage =
resolvedMessage !== null &&
resolvedMessage !== undefined &&
String(resolvedMessage).length > 0;
return (
<View style={{ alignItems: "center", gap: 10 }}>
<ActivityIndicator size={"large"} color={Palette.primary} />
{isWeb && message ? (
<ActivityIndicator size={size} color={color} {...restIndicatorProps} />
{shouldShowMessage ? (
<Text
style={{
color: Palette.white,
fontFamily: FONT_FAMILY.InterRegular,
textAlign: "center",
}}
style={[
{
color: Palette.white,
fontFamily: FONT_FAMILY.InterRegular,
textAlign: "center",
},
messageStyle,
]}
>
{message}
{resolvedMessage}
</Text>
) : null}
</View>