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 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 { checkIfEmailIsValid } from "../actions/signupActions";
|
||||
import firebase, { usersRef } from "../config/firebase";
|
||||
|
||||
export const UserDataContext = createContext();
|
||||
|
||||
@@ -20,7 +21,7 @@ export default ({ children }) => {
|
||||
const [currentUserRoles] = useGlobal("currentUserRoles");
|
||||
const [userProjects, setUserProjects] = useState([]);
|
||||
const [userLikedProjects, setUserLikedProjects] = useState([]);
|
||||
|
||||
const [userLikedMusic, setUserLikedMusic] = useState([]);
|
||||
useDataFromRef({
|
||||
ref: currentUID ? usersRef.doc(currentUID) : null,
|
||||
simpleRef: true,
|
||||
@@ -68,6 +69,22 @@ export default ({ children }) => {
|
||||
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) => {
|
||||
setPendingUserData((prevData) => ({
|
||||
...prevData,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useContext } from "reactn";
|
||||
import { View } from "react-native";
|
||||
import React, { useContext, useEffect } from "reactn";
|
||||
|
||||
import firebase, { usersRef } from "../config/firebase";
|
||||
import { Routes } from "../navigation";
|
||||
@@ -7,8 +7,6 @@ import { Routes } from "../navigation";
|
||||
import { SplashAnimationContext } from "../providers/SplashAnimationProvider";
|
||||
import { UserDataContext } from "../providers/UserDataProvider";
|
||||
|
||||
import { isDesktop, isWeb } from "../hooks/useLayoutType";
|
||||
|
||||
export default ({ navigation }) => {
|
||||
const { setCurrentUserData } = useContext(UserDataContext);
|
||||
const { setIsFullyLoaded } = useContext(SplashAnimationContext);
|
||||
|
||||
Reference in New Issue
Block a user