mirror of
https://github.com/wassname/Open-Assistant.git
synced 2026-07-07 00:06:32 +08:00
website: Add head to task pages even if no task and improve var name
This commit is contained in:
@@ -19,27 +19,35 @@ export const TaskPage = ({ type }: TaskPageProps) => {
|
||||
const { response, isLoading, completeTask, skipTask } = taskApiHook(type);
|
||||
const taskInfo = TaskInfos.find((taskType) => taskType.type === type);
|
||||
|
||||
switch (response.status) {
|
||||
let body;
|
||||
switch (response.taskAvailability) {
|
||||
case "AWAITING_INITIAL":
|
||||
return <LoadingScreen text={t("common:loading")} />;
|
||||
body = <LoadingScreen text={t("common:loading")} />;
|
||||
break;
|
||||
case "NONE_AVAILABLE":
|
||||
return <TaskEmptyState />;
|
||||
body = <TaskEmptyState />;
|
||||
break;
|
||||
case "AVAILABLE":
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{t(getTypeSafei18nKey(`${taskInfo.id}.label`))}</title>
|
||||
<meta name="description" content={t(getTypeSafei18nKey(`${taskInfo.id}.desc`))} />
|
||||
</Head>
|
||||
<Task
|
||||
key={response.task.id}
|
||||
frontendId={response.id}
|
||||
task={response.task as KnownTaskType}
|
||||
isLoading={isLoading}
|
||||
completeTask={completeTask}
|
||||
skipTask={skipTask}
|
||||
/>
|
||||
</>
|
||||
body = (
|
||||
<Task
|
||||
key={response.task.id}
|
||||
frontendId={response.id}
|
||||
task={response.task as KnownTaskType}
|
||||
isLoading={isLoading}
|
||||
completeTask={completeTask}
|
||||
skipTask={skipTask}
|
||||
/>
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{t(getTypeSafei18nKey(`${taskInfo.id}.label`))}</title>
|
||||
<meta name="description" content={t(getTypeSafei18nKey(`${taskInfo.id}.desc`))} />
|
||||
</Head>
|
||||
{body}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -6,7 +6,7 @@ import useSWRImmutable from "swr/immutable";
|
||||
import useSWRMutation from "swr/mutation";
|
||||
|
||||
export const useGenericTaskAPI = <TaskType extends BaseTask>(taskType: TaskTypeEnum): TaskApiHook<TaskType> => {
|
||||
const [response, setReponse] = useState<TaskResponse<TaskType>>({ status: "AWAITING_INITIAL" });
|
||||
const [response, setReponse] = useState<TaskResponse<TaskType>>({ taskAvailability: "AWAITING_INITIAL" });
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
|
||||
const { mutate: requestNewTask } = useSWRImmutable<TaskAvailableResponse<TaskType>>(
|
||||
@@ -15,12 +15,12 @@ export const useGenericTaskAPI = <TaskType extends BaseTask>(taskType: TaskTypeE
|
||||
{
|
||||
onSuccess: (response) => {
|
||||
setIsLoading(false);
|
||||
setReponse({ status: "AVAILABLE", ...response });
|
||||
setReponse({ taskAvailability: "AVAILABLE", ...response });
|
||||
},
|
||||
onError: () => {
|
||||
// We could check for code 503 here for truely unavailable, but we need to do something with other errors anyway.
|
||||
setIsLoading(false);
|
||||
setReponse({ status: "NONE_AVAILABLE" });
|
||||
setReponse({ taskAvailability: "NONE_AVAILABLE" });
|
||||
},
|
||||
revalidateOnMount: true,
|
||||
dedupingInterval: 500,
|
||||
@@ -35,7 +35,7 @@ export const useGenericTaskAPI = <TaskType extends BaseTask>(taskType: TaskTypeE
|
||||
onError: () => {
|
||||
// We could check for code 503 here for truely unavailable, but we need to do something with other errors anyway.
|
||||
setIsLoading(false);
|
||||
setReponse({ status: "NONE_AVAILABLE" });
|
||||
setReponse({ taskAvailability: "NONE_AVAILABLE" });
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@ const handler = withoutRole("banned", async (req, res, token) => {
|
||||
} catch (err) {
|
||||
if (err instanceof OasstError && err.errorCode === ERROR_CODES.TASK_REQUESTED_TYPE_NOT_AVAILABLE) {
|
||||
res.status(503).json({});
|
||||
return;
|
||||
} else {
|
||||
console.error(err);
|
||||
res.status(500).json(err);
|
||||
|
||||
@@ -36,15 +36,15 @@ export interface TaskAvailableResponse<Task extends BaseTask> {
|
||||
}
|
||||
|
||||
interface TaskAvailable<Task extends BaseTask> extends TaskAvailableResponse<Task> {
|
||||
status: "AVAILABLE";
|
||||
taskAvailability: "AVAILABLE";
|
||||
}
|
||||
|
||||
interface AwaitingInitialTask {
|
||||
status: "AWAITING_INITIAL";
|
||||
taskAvailability: "AWAITING_INITIAL";
|
||||
}
|
||||
|
||||
interface NoTaskAvailable {
|
||||
status: "NONE_AVAILABLE";
|
||||
taskAvailability: "NONE_AVAILABLE";
|
||||
}
|
||||
|
||||
export type TaskResponse<Task extends BaseTask> = TaskAvailable<Task> | AwaitingInitialTask | NoTaskAvailable;
|
||||
|
||||
Reference in New Issue
Block a user