Skip to content
This repository was archived by the owner on Jul 2, 2022. It is now read-only.

Commit dde41e3

Browse files
committed
feat: retrieve all applicants
1 parent 6eb59b0 commit dde41e3

File tree

9 files changed

+42
-11
lines changed

9 files changed

+42
-11
lines changed

client/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"react-dnd": "^11.0.0",
3636
"react-dnd-html5-backend": "^11.0.0",
3737
"react-dom": "^17.0.2",
38+
"subscriptions-transport-ws": "^0.9.19",
3839
"urql": "^2.0.4",
3940
"zustand": "^3.5.5"
4041
},

client/src/components/AppWrapper.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { useAuth } from '@/hooks';
33
const AppWrapper = ({ children }) => {
44
const { isLoading } = useAuth();
55

6-
if (isLoading) return <p />;
6+
// if (isLoading) return <p />;
77
return { children };
88
};
99

client/src/components/StudentList.jsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import React, { useState } from 'react';
2-
import { useStudents } from '@/hooks';
2+
import { useStudents, useStudentList } from '@/hooks';
33
import Filters from './Filters';
44
import StudentCard from './StudentCard';
55

66
import styles from '../assets/styles/dashboard.module.css';
77

88
const StudentList = ({ showOnly }) => {
9+
const { applicants, isLoading: applicantsLoading } = useStudentList();
910
const { students, isLoading } = useStudents();
1011
const [filtered, setFiltered] = useState([]);
1112

client/src/hooks/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export { default as useAuth } from './useAuth';
22
export { default as useStudents } from './useStudents';
33
export { default as useSuggestions } from './useSuggestions';
4+
export { default as useStudentList } from './useStudentList';
45
export { default as useRequireAuth } from './useRequireAuth';

client/src/hooks/useAuth.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const useStore = create((set) => ({
1616
}));
1717

1818
export default function useAuth() {
19-
const [{ data, fetching }] = useQuery({ query: queries.me });
19+
const [{ data, fetching }] = useQuery({ query: queries.ME });
2020

2121
const { user, isLoggingIn, setUser, finishLoading, login, isLoading } = useStore();
2222
const router = useRouter();

client/src/hooks/useStudentList.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { useQuery } from 'urql';
2+
import { queries } from 'common';
3+
4+
export default function useStudents() {
5+
const [{ data, fetching }] = useQuery({ query: queries.APPLICANT_LIST });
6+
7+
return { isLoading: fetching, applicants: data ? data.applicants : null };
8+
}

client/src/pages/index.jsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import { useRequireAuth } from '@/hooks';
22
import StudentDetail from '@/components/StudentDetail';
33
import SidebarLayout from '@/components/SidebarLayout';
4+
import { useQuery, useSubscription } from 'urql';
5+
import { subscriptions, queries } from 'common';
46

57
function Index() {
6-
const user = useRequireAuth();
8+
// const user = useRequireAuth();
79

8-
if (!user) return <p />;
10+
// if (!user) return <p />;
911
return <StudentDetail />;
1012
}
1113

client/src/pages/login.jsx

-4
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,11 @@ import { useEffect } from 'react';
22
import { useRouter } from 'next/router';
33
import { useAuth } from '@/hooks';
44
import { API_URL } from '@/constants';
5-
import { useQuery } from 'urql';
6-
import { queries } from 'common';
75
import SocialButton from '../components/SocialButton';
86

97
import styles from '../assets/styles/pending.module.css';
108

119
export default function Login() {
12-
const router = useRouter();
13-
const [result] = useQuery({ query: queries.me });
1410
// const { user } = useAuth();
1511

1612
/*

client/src/urql-client.js

+24-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,37 @@
11
import { API_URL } from '@/constants';
22
import { cacheExchange } from '@urql/exchange-graphcache';
3-
import { createClient, ssrExchange, dedupExchange, fetchExchange } from 'urql';
3+
import {
4+
createClient,
5+
ssrExchange,
6+
dedupExchange,
7+
fetchExchange,
8+
subscriptionExchange
9+
} from 'urql';
10+
import { SubscriptionClient } from 'subscriptions-transport-ws';
411

512
// Use a normalized cache
613
const cache = cacheExchange({});
714

815
const isServerSide = typeof window === 'undefined';
916
const ssrCache = ssrExchange({ isClient: !isServerSide });
17+
18+
const subscriptionClient = !isServerSide
19+
? new SubscriptionClient(`ws${API_URL.replace(/^http?/, '')}/graphql`, {
20+
reconnect: true
21+
})
22+
: null;
23+
1024
const client = createClient({
1125
url: `${API_URL}/graphql`,
12-
exchanges: [dedupExchange, cache, fetchExchange, ssrCache]
26+
exchanges: [
27+
dedupExchange,
28+
cache,
29+
fetchExchange,
30+
ssrCache,
31+
subscriptionExchange({
32+
forwardSubscription: (operation) => subscriptionClient.request(operation)
33+
})
34+
]
1335
});
1436

1537
export { client, ssrCache };

0 commit comments

Comments
 (0)