my liked music
This commit is contained in:
-2545
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,44 @@
|
|||||||
|
/* eslint-disable react/display-name */
|
||||||
|
import { useDataFromRef } from "react-native-minuit/src/hooks";
|
||||||
|
import useMinuit from "react-native-minuit/src/hooks/useMinuit";
|
||||||
|
import { createContext, useContext, useGlobal } from "reactn";
|
||||||
|
|
||||||
|
import { usersRef } from "../config/firebase";
|
||||||
|
|
||||||
|
export const UserDataContext = createContext();
|
||||||
|
|
||||||
|
export default ({ children }) => {
|
||||||
|
const { setIsLoading, setTooltip } = useMinuit();
|
||||||
|
|
||||||
|
const [currentUID] = useGlobal("currentUID");
|
||||||
|
const [currentUserData, setCurrentUserData] = useGlobal("currentUserData");
|
||||||
|
const [currentUserRoles] = useGlobal("currentUserRoles");
|
||||||
|
|
||||||
|
useDataFromRef({
|
||||||
|
ref: currentUID ? usersRef.doc(currentUID) : null,
|
||||||
|
simpleRef: true,
|
||||||
|
listener: true,
|
||||||
|
condition: currentUID,
|
||||||
|
refreshArray: [currentUID],
|
||||||
|
onUpdate: (data) => {
|
||||||
|
if (data) {
|
||||||
|
setCurrentUserData(data);
|
||||||
|
} else {
|
||||||
|
setCurrentUserData(null);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<UserDataContext.Provider value={{}}>{children}</UserDataContext.Provider>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useUserData = () => {
|
||||||
|
return useContext(UserDataContext);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Convenience alias returning the same context, as requested
|
||||||
|
export const useUser = () => {
|
||||||
|
return useContext(UserDataContext);
|
||||||
|
};
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
import { useContext, createContext, useGlobal } from "reactn";
|
/* eslint-disable react/display-name */
|
||||||
import { useDataFromRef } from "react-native-minuit/src/hooks";
|
import { useDataFromRef } from "react-native-minuit/src/hooks";
|
||||||
import useMinuit from "react-native-minuit/src/hooks/useMinuit";
|
import useMinuit from "react-native-minuit/src/hooks/useMinuit";
|
||||||
|
import { createContext, useContext, useGlobal } from "reactn";
|
||||||
|
|
||||||
import firebase, { usersRef } from "../config/firebase";
|
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { checkIfEmailIsValid } from "../actions/signupActions";
|
import { checkIfEmailIsValid } from "../actions/signupActions";
|
||||||
|
import firebase, { usersRef } from "../config/firebase";
|
||||||
|
|
||||||
export const UserDataContext = createContext();
|
export const UserDataContext = createContext();
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ export default ({ children }) => {
|
|||||||
const [currentUserRoles] = useGlobal("currentUserRoles");
|
const [currentUserRoles] = useGlobal("currentUserRoles");
|
||||||
const [userProjects, setUserProjects] = useState([]);
|
const [userProjects, setUserProjects] = useState([]);
|
||||||
const [userLikedProjects, setUserLikedProjects] = useState([]);
|
const [userLikedProjects, setUserLikedProjects] = useState([]);
|
||||||
|
const [userLikedMusic, setUserLikedMusic] = useState([]);
|
||||||
useDataFromRef({
|
useDataFromRef({
|
||||||
ref: currentUID ? usersRef.doc(currentUID) : null,
|
ref: currentUID ? usersRef.doc(currentUID) : null,
|
||||||
simpleRef: true,
|
simpleRef: true,
|
||||||
@@ -68,6 +69,22 @@ export default ({ children }) => {
|
|||||||
onUpdate: (list) => setUserLikedProjects(Array.isArray(list) ? list : []),
|
onUpdate: (list) => setUserLikedProjects(Array.isArray(list) ? list : []),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// userLiked music
|
||||||
|
useDataFromRef({
|
||||||
|
ref: currentUID
|
||||||
|
? firebase
|
||||||
|
.firestore()
|
||||||
|
.collection("projects")
|
||||||
|
.where("likedBy", "array-contains", currentUID)
|
||||||
|
.orderBy("updatedAt", "desc")
|
||||||
|
: null,
|
||||||
|
simpleRef: false,
|
||||||
|
listener: true,
|
||||||
|
condition: !!currentUID,
|
||||||
|
refreshArray: [currentUID],
|
||||||
|
onUpdate: (list) => setUserLikedMusic(Array.isArray(list) ? list : []),
|
||||||
|
});
|
||||||
|
|
||||||
const updatePendingUserData = (newData) => {
|
const updatePendingUserData = (newData) => {
|
||||||
setPendingUserData((prevData) => ({
|
setPendingUserData((prevData) => ({
|
||||||
...prevData,
|
...prevData,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import React, { useEffect, useContext } from "reactn";
|
|
||||||
import { View } from "react-native";
|
import { View } from "react-native";
|
||||||
|
import React, { useContext, useEffect } from "reactn";
|
||||||
|
|
||||||
import firebase, { usersRef } from "../config/firebase";
|
import firebase, { usersRef } from "../config/firebase";
|
||||||
import { Routes } from "../navigation";
|
import { Routes } from "../navigation";
|
||||||
@@ -7,8 +7,6 @@ import { Routes } from "../navigation";
|
|||||||
import { SplashAnimationContext } from "../providers/SplashAnimationProvider";
|
import { SplashAnimationContext } from "../providers/SplashAnimationProvider";
|
||||||
import { UserDataContext } from "../providers/UserDataProvider";
|
import { UserDataContext } from "../providers/UserDataProvider";
|
||||||
|
|
||||||
import { isDesktop, isWeb } from "../hooks/useLayoutType";
|
|
||||||
|
|
||||||
export default ({ navigation }) => {
|
export default ({ navigation }) => {
|
||||||
const { setCurrentUserData } = useContext(UserDataContext);
|
const { setCurrentUserData } = useContext(UserDataContext);
|
||||||
const { setIsFullyLoaded } = useContext(SplashAnimationContext);
|
const { setIsFullyLoaded } = useContext(SplashAnimationContext);
|
||||||
|
|||||||
Reference in New Issue
Block a user