-
+
Homepage
+
setSelectedCompany(option)}
+ />
+ {JSON.stringify(selectedCompany, null, 2)}
+
+
diff --git a/apps/portal/src/pages/resumes/[resumeId].tsx b/apps/portal/src/pages/resumes/[resumeId].tsx
index d56c1135..52d4f3b7 100644
--- a/apps/portal/src/pages/resumes/[resumeId].tsx
+++ b/apps/portal/src/pages/resumes/[resumeId].tsx
@@ -27,17 +27,17 @@ export default function ResumeReviewPage() {
const { data: session } = useSession();
const router = useRouter();
const { resumeId } = router.query;
- const utils = trpc.useContext();
+ const trpcContext = trpc.useContext();
// Safe to assert resumeId type as string because query is only sent if so
const detailsQuery = trpc.useQuery(
- ['resumes.details.find', { resumeId: resumeId as string }],
+ ['resumes.resume.findOne', { resumeId: resumeId as string }],
{
- enabled: typeof resumeId === 'string' && session?.user?.id !== undefined,
+ enabled: typeof resumeId === 'string',
},
);
- const starMutation = trpc.useMutation('resumes.details.update_star', {
+ const starMutation = trpc.useMutation('resumes.star.user.create_or_delete', {
onSuccess() {
- utils.invalidateQueries();
+ trpcContext.invalidateQueries(['resumes.resume.findOne']);
},
});
diff --git a/apps/portal/src/pages/resumes/index.tsx b/apps/portal/src/pages/resumes/index.tsx
index fd0a304f..fab32bfe 100644
--- a/apps/portal/src/pages/resumes/index.tsx
+++ b/apps/portal/src/pages/resumes/index.tsx
@@ -2,7 +2,7 @@ import clsx from 'clsx';
import Head from 'next/head';
import { useRouter } from 'next/router';
import { useSession } from 'next-auth/react';
-import { Fragment, useEffect, useState } from 'react';
+import { Fragment, useState } from 'react';
import { Disclosure, Menu, Transition } from '@headlessui/react';
import {
ChevronDownIcon,
@@ -10,9 +10,8 @@ import {
PlusIcon,
} from '@heroicons/react/20/solid';
import { MagnifyingGlassIcon } from '@heroicons/react/24/outline';
-import { Spinner, Tabs, TextInput } from '@tih/ui';
+import { Tabs, TextInput } from '@tih/ui';
-import BrowseListItem from '~/components/resumes/browse/BrowseListItem';
import {
BROWSE_TABS_VALUES,
EXPERIENCE,
@@ -22,6 +21,10 @@ import {
TOP_HITS,
} from '~/components/resumes/browse/constants';
import FilterPill from '~/components/resumes/browse/FilterPill';
+import ResumeListItems from '~/components/resumes/browse/ResumeListItems';
+import ResumeReviewsTitle from '~/components/resumes/ResumeReviewsTitle';
+
+import { trpc } from '~/utils/trpc';
import type { Resume } from '~/types/resume';
@@ -42,54 +45,41 @@ const filters = [
options: LOCATION,
},
];
-import ResumeReviewsTitle from '~/components/resumes/ResumeReviewsTitle';
-
-import { trpc } from '~/utils/trpc';
export default function ResumeHomePage() {
- const { data } = useSession();
+ const { data: sessionData } = useSession();
const router = useRouter();
const [tabsValue, setTabsValue] = useState(BROWSE_TABS_VALUES.ALL);
const [searchValue, setSearchValue] = useState('');
const [resumes, setResumes] = useState
>([]);
- const allResumesQuery = trpc.useQuery(['resumes.resume.all'], {
+ const allResumesQuery = trpc.useQuery(['resumes.resume.findAll'], {
enabled: tabsValue === BROWSE_TABS_VALUES.ALL,
+ onSuccess: (data) => {
+ setResumes(data);
+ },
});
- const starredResumesQuery = trpc.useQuery(['resumes.resume.browse.stars'], {
- enabled: tabsValue === BROWSE_TABS_VALUES.STARRED,
- });
- const myResumesQuery = trpc.useQuery(['resumes.resume.browse.my'], {
- enabled: tabsValue === BROWSE_TABS_VALUES.MY,
- });
-
- useEffect(() => {
- switch (tabsValue) {
- case BROWSE_TABS_VALUES.ALL: {
- setResumes(allResumesQuery.data ?? []);
- break;
- }
- case BROWSE_TABS_VALUES.STARRED: {
- setResumes(starredResumesQuery.data ?? []);
- break;
- }
- case BROWSE_TABS_VALUES.MY: {
- setResumes(myResumesQuery.data ?? []);
- break;
- }
- default: {
- setResumes([]);
- }
- }
- }, [
- allResumesQuery.data,
- starredResumesQuery.data,
- myResumesQuery.data,
- tabsValue,
- ]);
+ const starredResumesQuery = trpc.useQuery(
+ ['resumes.resume.user.findUserStarred'],
+ {
+ enabled: tabsValue === BROWSE_TABS_VALUES.STARRED,
+ onSuccess: (data) => {
+ setResumes(data);
+ },
+ },
+ );
+ const myResumesQuery = trpc.useQuery(
+ ['resumes.resume.user.findUserCreated'],
+ {
+ enabled: tabsValue === BROWSE_TABS_VALUES.MY,
+ onSuccess: (data) => {
+ setResumes(data);
+ },
+ },
+ );
const onClickNew = () => {
- if (data?.user?.id) {
+ if (sessionData?.user?.id) {
router.push('/resumes/submit');
} else {
// TODO: Handle non-logged in user behaviour
@@ -150,6 +140,7 @@ export default function ResumeHomePage() {
- {allResumesQuery.isLoading ||
- starredResumesQuery.isLoading ||
- myResumesQuery.isLoading ? (
-
-
-
- ) : (
-
-
- {resumes.map((resumeObj) => (
- -
-
-
- ))}
-
-
- )}
+
diff --git a/apps/portal/src/pages/resumes/submit.tsx b/apps/portal/src/pages/resumes/submit.tsx
index e6adec0f..1ca06031 100644
--- a/apps/portal/src/pages/resumes/submit.tsx
+++ b/apps/portal/src/pages/resumes/submit.tsx
@@ -40,6 +40,7 @@ export default function SubmitResumeForm() {
const router = useRouter();
const [resumeFile, setResumeFile] = useState