diff --git a/src/components/ActivityLoader.js b/src/components/ActivityLoader.js
new file mode 100644
index 0000000..f8a283c
--- /dev/null
+++ b/src/components/ActivityLoader.js
@@ -0,0 +1,30 @@
+import { View } from "react-native";
+
+import { LoaderIndicator } from "../providers/LoadingProvider";
+
+export default ({
+ message,
+ defaultMessage = "Chargement...",
+ containerStyle = {},
+ indicatorProps = {},
+ messageStyle = {},
+}) => {
+ return (
+
+
+
+ );
+};
diff --git a/src/providers/LoadingProvider.js b/src/providers/LoadingProvider.js
index de98474..6fc11a2 100644
--- a/src/providers/LoadingProvider.js
+++ b/src/providers/LoadingProvider.js
@@ -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" },
]}
>
-
+
)}
>
);
};
-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 (
-
- {isWeb && message ? (
+
+ {shouldShowMessage ? (
- {message}
+ {resolvedMessage}
) : null}
diff --git a/src/screens/Home/Home.js b/src/screens/Home/Home.js
index c54b61f..ad18581 100644
--- a/src/screens/Home/Home.js
+++ b/src/screens/Home/Home.js
@@ -85,6 +85,7 @@ const Home = () => {
const [menuAnchor, setMenuAnchor] = useState(null);
const [menuProject, setMenuProject] = useState(null);
const menuAnchorRef = useRef(null);
+ const testLoaderTimeoutRef = useRef(null);
useEffect(() => {
setActiveStageIndex((prev) => {
@@ -218,6 +219,15 @@ const Home = () => {
stageRoute,
]);
+ useEffect(() => {
+ return () => {
+ if (testLoaderTimeoutRef.current) {
+ clearTimeout(testLoaderTimeoutRef.current);
+ testLoaderTimeoutRef.current = null;
+ }
+ };
+ }, []);
+
const songwriterAction = useMemo(
() => getStageAction("songwriter", null),
[]
@@ -304,6 +314,7 @@ const Home = () => {
onPress={handleStageAction}
disabled={continueDisabled}
/>
+
{/* {
condition: !!projectId,
});
+ console.log("project is : ", project);
+
const { data: owner } = useDataFromRef({
ref: project?.userId ? usersRef.doc(project.userId) : null,
simpleRef: true,