[resumes][feat] Add sign in buttons on browse page

pull/350/head
Tan Su Yin 3 years ago
parent cd4c446e78
commit 728665ce54

@ -19,7 +19,6 @@ export default function ResumeListItems({ isLoading, resumes }: Props) {
} }
return ( return (
<div className="col-span-10 pr-8">
<ul role="list"> <ul role="list">
{resumes.map((resumeObj: Resume) => ( {resumes.map((resumeObj: Resume) => (
<li key={resumeObj.id}> <li key={resumeObj.id}>
@ -30,6 +29,5 @@ export default function ResumeListItems({ isLoading, resumes }: Props) {
</li> </li>
))} ))}
</ul> </ul>
</div>
); );
} }

@ -23,6 +23,7 @@ import {
import FilterPill from '~/components/resumes/browse/FilterPill'; import FilterPill from '~/components/resumes/browse/FilterPill';
import ResumeListItems from '~/components/resumes/browse/ResumeListItems'; import ResumeListItems from '~/components/resumes/browse/ResumeListItems';
import ResumeReviewsTitle from '~/components/resumes/ResumeReviewsTitle'; import ResumeReviewsTitle from '~/components/resumes/ResumeReviewsTitle';
import SignInButton from '~/components/resumes/SignInButton';
import { trpc } from '~/utils/trpc'; import { trpc } from '~/utils/trpc';
@ -52,29 +53,44 @@ export default function ResumeHomePage() {
const [tabsValue, setTabsValue] = useState(BROWSE_TABS_VALUES.ALL); const [tabsValue, setTabsValue] = useState(BROWSE_TABS_VALUES.ALL);
const [searchValue, setSearchValue] = useState(''); const [searchValue, setSearchValue] = useState('');
const [resumes, setResumes] = useState<Array<Resume>>([]); const [resumes, setResumes] = useState<Array<Resume>>([]);
const [renderSignInButton, setRenderSignInButton] = useState(false);
const [signInButtonText, setSignInButtonText] = useState('');
const allResumesQuery = trpc.useQuery(['resumes.resume.findAll'], { const allResumesQuery = trpc.useQuery(['resumes.resume.findAll'], {
enabled: tabsValue === BROWSE_TABS_VALUES.ALL, enabled: tabsValue === BROWSE_TABS_VALUES.ALL,
onSuccess: (data) => { onSuccess: (data) => {
setResumes(data); setResumes(data);
setRenderSignInButton(false);
}, },
}); });
const starredResumesQuery = trpc.useQuery( const starredResumesQuery = trpc.useQuery(
['resumes.resume.user.findUserStarred'], ['resumes.resume.user.findUserStarred'],
{ {
enabled: tabsValue === BROWSE_TABS_VALUES.STARRED, enabled: tabsValue === BROWSE_TABS_VALUES.STARRED,
onError: () => {
setResumes([]);
setRenderSignInButton(true);
setSignInButtonText('to view starred resumes');
},
onSuccess: (data) => { onSuccess: (data) => {
setResumes(data); setResumes(data);
}, },
retry: false,
}, },
); );
const myResumesQuery = trpc.useQuery( const myResumesQuery = trpc.useQuery(
['resumes.resume.user.findUserCreated'], ['resumes.resume.user.findUserCreated'],
{ {
enabled: tabsValue === BROWSE_TABS_VALUES.MY, enabled: tabsValue === BROWSE_TABS_VALUES.MY,
onError: () => {
setResumes([]);
setRenderSignInButton(true);
setSignInButtonText('to view your submitted resumes');
},
onSuccess: (data) => { onSuccess: (data) => {
setResumes(data); setResumes(data);
}, },
retry: false,
}, },
); );
@ -270,6 +286,8 @@ export default function ResumeHomePage() {
</form> </form>
</div> </div>
</div> </div>
<div className="col-span-10 pr-8">
{renderSignInButton && <SignInButton text={signInButtonText} />}
<ResumeListItems <ResumeListItems
isLoading={ isLoading={
allResumesQuery.isFetching || allResumesQuery.isFetching ||
@ -281,6 +299,7 @@ export default function ResumeHomePage() {
</div> </div>
</div> </div>
</div> </div>
</div>
</main> </main>
</> </>
); );

Loading…
Cancel
Save