made query into hook, converted more files to typescript

This commit is contained in:
subnub
2024-06-19 18:44:42 -04:00
parent 49e6bab79c
commit 55142b29f9
13 changed files with 127 additions and 127 deletions
+2 -2
View File
@@ -122,7 +122,7 @@ class MongoFileService {
let searchQuery = query.search || "";
const parent = query.parent || "/";
let limit = query.limit || 50;
let sortBy = query.sortby || "DEFAULT";
let sortBy = query.soryBy || "DEFAULT";
const startAt = query.startAt || undefined;
const startAtDate = query.startAtDate || "0";
const startAtName = query.startAtName || "";
@@ -136,7 +136,7 @@ class MongoFileService {
const queryObj = createQuery(
userID.toString(),
parent,
query.sortby,
query.sortBy,
startAt,
startAtDate,
searchQuery,
-2
View File
@@ -114,8 +114,6 @@ export const startLoginCheck = (currentRoute) => {
env.emailAddress = response.data.email;
env.name = response.data.name || "";
console.log("login checked");
if (emailVerified) {
dispatch(setLoginFailed(false));
dispatch(login(id));
-10
View File
@@ -1,10 +0,0 @@
import axios from "../axiosInterceptor";
export const getFilesList = async ({ queryKey, pageParam }) => {
console.log("quer", queryKey, pageParam);
const [_key, { parent, search, sortBy, limit }] = queryKey;
const response = await axios.get(
`/file-service/list?parent=${parent}&sortby=${sortBy}&search=${search}&limit=${limit}`
);
return response.data;
};
+40
View File
@@ -0,0 +1,40 @@
import { QueryFunctionContext } from "react-query";
import axios from "../axiosInterceptor";
interface QueryKeyParams {
parent: string;
search?: string;
sortBy?: string;
limit?: number;
startAtDate?: string;
startAtName?: string;
startAt?: boolean;
}
export const getFilesList = async ({
queryKey,
pageParam,
}: QueryFunctionContext<[string, QueryKeyParams]>) => {
const [
_key,
{ parent = "/", search = "", sortBy = "date_desc", limit = 50 },
] = queryKey;
const queryParams: QueryKeyParams = {
parent,
search,
sortBy,
limit,
};
if (pageParam?.startAtDate && pageParam?.startAtName) {
queryParams.startAtDate = pageParam.startAtDate;
queryParams.startAtName = pageParam.startAtName;
queryParams.startAt = true;
}
const response = await axios.get(`/file-service/list`, {
params: queryParams,
});
return response.data;
};
-9
View File
@@ -1,9 +0,0 @@
import axios from "../axiosInterceptor";
export const getFoldersList = async ({ queryKey }) => {
const [_key, { parent, search, sortBy, limit }] = queryKey;
const response = await axios.get(
`/folder-service/list?parent=${parent}&sortby=${sortBy}&search=${search}&limit=${limit}`
);
return response.data;
};
+24
View File
@@ -0,0 +1,24 @@
import { QueryFunctionContext } from "react-query";
import axios from "../axiosInterceptor";
interface QueryKeyParams {
parent: string;
search?: string;
sortBy?: string;
limit?: number;
}
export const getFoldersList = async ({
queryKey,
}: QueryFunctionContext<[string, QueryKeyParams]>) => {
const [_key, { parent, search, sortBy, limit }] = queryKey;
const response = await axios.get(`/folder-service/list`, {
params: {
parent,
search,
sortBy,
limit,
},
});
return response.data;
};
+4 -36
View File
@@ -9,45 +9,13 @@ import { useParams } from "react-router-dom";
import { useInfiniteQuery, useQuery } from "react-query";
import { getFilesList } from "../../api/filesAPI";
import { getFoldersList } from "../../api/foldersAPI";
import { useFiles } from "../../hooks/files";
import { useFolders } from "../../hooks/folders";
const DataForm = (props) => {
const params = useParams();
const { data: files, fetchNextPage: filesFetchNextPage } = useInfiniteQuery({
queryKey: [
"files",
{
parent: params.id || "/",
search: "",
sortBy: undefined,
limit: undefined,
},
],
queryFn: getFilesList,
initialPageParam: {
startAtDate: undefined,
startAtName: undefined,
},
getNextPageParam: (lastPage, pages) => {
console.log("last page", lastPage);
return {
startAtDate: "test",
startAtName: "tes2",
};
},
});
const { data: folders } = useQuery(
[
"folders",
{
parent: params.id || "/",
search: "",
sortBy: undefined,
limit: undefined,
},
],
getFoldersList
);
console.log(" files", files, folders);
const { data: files, fetchNextPage: filesFetchNextPage } = useFiles();
const { data: folders } = useFolders();
return (
<div
+1 -35
View File
@@ -20,41 +20,7 @@ const Homepage2 = () => {
const location = useLocation();
const params = useParams();
const photoID = useSelector((state) => state.photoViewer.id);
useInfiniteQuery({
queryKey: [
"files",
{
parent: params.id || "/",
search: "",
sortBy: undefined,
limit: undefined,
},
],
queryFn: getFilesList,
initialPageParam: {
startAtDate: undefined,
startAtName: undefined,
},
getNextPageParam: (lastPage, pages) => {
console.log("last page", lastPage);
return {
startAtDate: "test",
startAtName: "tes2",
};
},
});
useQuery(
[
"folders",
{
parent: params.id || "/",
search: "",
sortBy: undefined,
limit: undefined,
},
],
getFoldersList
);
useFiles();
const goHome = () => {
navigate("/home");
-1
View File
@@ -35,7 +35,6 @@ class LoginPageContainer extends React.Component {
const loginSuccessful = await this.props.dispatch(startLoginCheck());
const loginRedirectRoute =
this.props.location.state?.from?.pathname || this.props.currentRoute;
console.log("login check", loginRedirectRoute);
if (loginSuccessful) {
this.props.navigate(loginRedirectRoute);
}
-31
View File
@@ -1,31 +0,0 @@
import { useInfiniteQuery } from "react-query";
import { useParams } from "react-router-dom";
export const useFiles = async () => {
const params = useParams();
const filesReactQuery = useInfiniteQuery({
queryKey: [
"files",
{
parent: params.id || "/",
search: "",
sortBy: undefined,
limit: undefined,
},
],
queryFn: getFilesList,
initialPageParam: {
startAtDate: undefined,
startAtName: undefined,
},
getNextPageParam: (lastPage, pages) => {
console.log("last page", lastPage);
return {
startAtDate: "test",
startAtName: "tes2",
};
},
});
return filesReactQuery;
};
+35
View File
@@ -0,0 +1,35 @@
import { useInfiniteQuery } from "react-query";
import { useParams } from "react-router-dom";
import { getFilesList } from "../api/filesAPI";
export const useFiles = () => {
const params = useParams();
const filesReactQuery = useInfiniteQuery(
[
"files",
{
parent: params.id || "/",
search: "",
sortBy: undefined,
limit: undefined,
},
],
getFilesList,
{
getNextPageParam: (lastPage, pages) => {
const lastElement = lastPage[lastPage.length - 1];
if (!lastElement) return undefined;
return {
startAtDate: lastElement.uploadDate,
startAtName: lastElement.filename,
};
},
}
);
const testFunction = () => {
console.log("this is a test function");
};
return { ...filesReactQuery, testFunction };
};
+21
View File
@@ -0,0 +1,21 @@
import { useQuery } from "react-query";
import { useParams } from "react-router-dom";
import { getFoldersList } from "../api/foldersAPI";
export const useFolders = () => {
const params = useParams();
const foldersReactQuery = useQuery(
[
"folders",
{
parent: params.id || "/",
search: "",
sortBy: undefined,
limit: undefined,
},
],
getFoldersList
);
return foldersReactQuery;
};
-1
View File
@@ -5,7 +5,6 @@ import { Route, Navigate, useLocation } from "react-router-dom";
const PrivateRoute = ({ children }) => {
const isAuthenticated = useSelector((state) => !!state.auth.id);
const location = useLocation();
console.log("auth", isAuthenticated);
if (!isAuthenticated) {
return <Navigate to="/" state={{ from: location }} />;
}