[questions][fix] show question type in badge

pull/347/head
Jeff Sieu 3 years ago
parent ccc8eed1d6
commit 61a8669b20

@ -0,0 +1,9 @@
import { Spinner } from '@tih/ui';
export default function FullScreenSpinner() {
return (
<div className="flex h-full w-full items-center justify-center">
<Spinner size="lg" />
</div>
);
}

@ -19,6 +19,7 @@ export type FullQuestionCardProps = UpvoteProps & {
receivedCount: number; receivedCount: number;
role: string; role: string;
timestamp: string; timestamp: string;
type: string;
}; };
export default function FullQuestionCard({ export default function FullQuestionCard({
@ -29,6 +30,7 @@ export default function FullQuestionCard({
timestamp, timestamp,
role, role,
location, location,
type,
}: FullQuestionCardProps) { }: FullQuestionCardProps) {
const altText = company + ' logo'; const altText = company + ' logo';
return ( return (
@ -41,7 +43,7 @@ export default function FullQuestionCard({
</div> </div>
<div className="flex items-baseline justify-between"> <div className="flex items-baseline justify-between">
<div className="flex items-center gap-2 text-slate-500"> <div className="flex items-center gap-2 text-slate-500">
<Badge label="Technical" variant="primary" /> <Badge label={type} variant="primary" />
<p className="text-xs"> <p className="text-xs">
{timestamp} · {location} · {role} {timestamp} · {location} · {role}
</p> </p>
@ -53,14 +55,4 @@ export default function FullQuestionCard({
</div> </div>
</article> </article>
); );
// Return href ? (
// <a
// className="ring-primary-500 rounded-md hover:bg-slate-50 focus:ring-2 focus-visible:outline-none active:bg-slate-100"
// href={href}>
// {mainCard}
// </a>
// ) : (
// mainCard
// );
} }

@ -47,12 +47,14 @@ export type QuestionCardProps = ActionButtonProps &
receivedCount: number; receivedCount: number;
role: string; role: string;
timestamp: string; timestamp: string;
type: string;
}; };
export default function QuestionCard({ export default function QuestionCard({
answerCount, answerCount,
content, content,
// ReceivedCount, // ReceivedCount,
type,
showVoteButtons, showVoteButtons,
showUserStatistics, showUserStatistics,
showActionButton, showActionButton,
@ -69,7 +71,7 @@ export default function QuestionCard({
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
<div className="flex items-baseline justify-between"> <div className="flex items-baseline justify-between">
<div className="flex items-center gap-2 text-slate-500"> <div className="flex items-center gap-2 text-slate-500">
<Badge label="Technical" variant="primary" /> <Badge label={type} variant="primary" />
<p className="text-xs"> <p className="text-xs">
{timestamp} · {location} · {role} {timestamp} · {location} · {role}
</p> </p>

@ -5,6 +5,7 @@ import { Button, Select, TextArea } from '@tih/ui';
import FullAnswerCard from '~/components/questions/card/FullAnswerCard'; import FullAnswerCard from '~/components/questions/card/FullAnswerCard';
import CommentListItem from '~/components/questions/CommentListItem'; import CommentListItem from '~/components/questions/CommentListItem';
import FullScreenSpinner from '~/components/questions/FullScreenSpinner';
import { import {
SAMPLE_ANSWER, SAMPLE_ANSWER,
@ -67,8 +68,7 @@ export default function QuestionPage() {
}; };
if (!answer) { if (!answer) {
// TODO: Make this look nicer return <FullScreenSpinner />;
return <div>Answer not found</div>;
} }
return ( return (

@ -1,11 +1,12 @@
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import { useForm } from 'react-hook-form'; import { useForm } from 'react-hook-form';
import { ArrowSmallLeftIcon } from '@heroicons/react/24/outline'; import { ArrowSmallLeftIcon } from '@heroicons/react/24/outline';
import { Button, Collapsible, Select, Spinner, TextArea } from '@tih/ui'; import { Button, Collapsible, Select, TextArea } from '@tih/ui';
import AnswerCard from '~/components/questions/card/AnswerCard'; import AnswerCard from '~/components/questions/card/AnswerCard';
import FullQuestionCard from '~/components/questions/card/FullQuestionCard'; import FullQuestionCard from '~/components/questions/card/FullQuestionCard';
import CommentListItem from '~/components/questions/CommentListItem'; import CommentListItem from '~/components/questions/CommentListItem';
import FullScreenSpinner from '~/components/questions/FullScreenSpinner';
import { import {
SAMPLE_ANSWER, SAMPLE_ANSWER,
@ -96,11 +97,7 @@ export default function QuestionPage() {
}; };
if (!question) { if (!question) {
return ( return <FullScreenSpinner />;
<div className="flex h-full w-full items-center justify-center">
<Spinner size="lg" />
</div>
);
} }
return ( return (

@ -248,6 +248,7 @@ export default function QuestionsHomePage() {
receivedCount={0} // TODO: Implement received count receivedCount={0} // TODO: Implement received count
role={question.role} role={question.role}
timestamp={question.seenAt.toLocaleDateString()} timestamp={question.seenAt.toLocaleDateString()}
type={question.type}
upvoteCount={question.numVotes} upvoteCount={question.numVotes}
/> />
))} ))}

@ -88,6 +88,7 @@ export const questionsQuestionRouter = createProtectedRouter()
numVotes: votes, numVotes: votes,
role: data.encounters[0].role ?? 'Unknown role', role: data.encounters[0].role ?? 'Unknown role',
seenAt: data.encounters[0].seenAt, seenAt: data.encounters[0].seenAt,
type: data.questionType,
updatedAt: data.updatedAt, updatedAt: data.updatedAt,
user: data.user?.name ?? '', user: data.user?.name ?? '',
}; };
@ -160,6 +161,7 @@ export const questionsQuestionRouter = createProtectedRouter()
numVotes: votes, numVotes: votes,
role: questionData.encounters[0].role ?? 'Unknown role', role: questionData.encounters[0].role ?? 'Unknown role',
seenAt: questionData.encounters[0].seenAt, seenAt: questionData.encounters[0].seenAt,
type: questionData.questionType,
updatedAt: questionData.updatedAt, updatedAt: questionData.updatedAt,
user: questionData.user?.name ?? '', user: questionData.user?.name ?? '',
}; };

@ -9,6 +9,7 @@ export type Question = {
numVotes: number; numVotes: number;
role: string; role: string;
seenAt: Date; seenAt: Date;
type: stringl;
updatedAt: Date; updatedAt: Date;
user: string; user: string;
}; };

Loading…
Cancel
Save