From 959121f394cd92a5931d618d1cadf6315663c59c Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 18 Mar 2024 16:15:57 -0700 Subject: Update the reporting flow to first select a recipient if the user has multiple labelers (#3258) --- src/components/ReportDialog/index.tsx | 54 ++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 16 deletions(-) (limited to 'src/components/ReportDialog/index.tsx') diff --git a/src/components/ReportDialog/index.tsx b/src/components/ReportDialog/index.tsx index b35727c7d..f01ff3f3b 100644 --- a/src/components/ReportDialog/index.tsx +++ b/src/components/ReportDialog/index.tsx @@ -12,9 +12,11 @@ import * as Dialog from '#/components/Dialog' import {Text} from '#/components/Typography' import {ReportDialogProps} from './types' +import {SelectLabelerView} from './SelectLabelerView' import {SelectReportOptionView} from './SelectReportOptionView' import {SubmitView} from './SubmitView' import {useDelayedLoading} from '#/components/hooks/useDelayedLoading' +import {AppBskyLabelerDefs} from '@atproto/api' export function ReportDialog(props: ReportDialogProps) { return ( @@ -33,9 +35,6 @@ function ReportDialogInner(props: ReportDialogProps) { error, } = useMyLabelersQuery() const isLoading = useDelayedLoading(500, isLabelerLoading) - const [selectedReportOption, setSelectedReportOption] = React.useState< - ReportOption | undefined - >() return ( @@ -51,23 +50,46 @@ function ReportDialogInner(props: ReportDialogProps) { Something went wrong, please try again. - ) : selectedReportOption ? ( - setSelectedReportOption(undefined)} - onSubmitComplete={() => props.control.close()} - /> ) : ( - + )} ) } + +function ReportDialogLoaded( + props: ReportDialogProps & { + labelers: AppBskyLabelerDefs.LabelerViewDetailed[] + }, +) { + const [selectedLabeler, setSelectedLabeler] = React.useState< + string | undefined + >(props.labelers.length === 1 ? props.labelers[0].creator.did : undefined) + const [selectedReportOption, setSelectedReportOption] = React.useState< + ReportOption | undefined + >() + + if (selectedReportOption && selectedLabeler) { + return ( + setSelectedReportOption(undefined)} + onSubmitComplete={() => props.control.close()} + /> + ) + } + if (selectedLabeler) { + return ( + setSelectedLabeler(undefined)} + onSelectReportOption={setSelectedReportOption} + /> + ) + } + return +} -- cgit 1.4.1