fix(dashboard): fix issues where info can accidentally be removed by a save

This commit is contained in:
Carl-Gerhard Lindesvärd
2025-02-27 22:10:13 +01:00
parent 44721f84da
commit f0b0f27a8f
2 changed files with 18 additions and 6 deletions

View File

@@ -32,7 +32,7 @@ const validator = zProject.pick({
type IForm = z.infer<typeof validator>; type IForm = z.infer<typeof validator>;
export default function EditProjectDetails({ project }: Props) { export default function EditProjectDetails({ project }: Props) {
const [hasDomain, setHasDomain] = useState(true); const [hasDomain, setHasDomain] = useState(project.domain !== null);
const form = useForm<IForm>({ const form = useForm<IForm>({
resolver: zodResolver(validator), resolver: zodResolver(validator),
defaultValues: { defaultValues: {
@@ -101,7 +101,7 @@ export default function EditProjectDetails({ project }: Props) {
</div> </div>
<AnimateHeight open={hasDomain}> <AnimateHeight open={hasDomain}>
<Input <Input
placeholder="Domain" placeholder="https://example.com"
{...form.register('domain')} {...form.register('domain')}
className="mb-4" className="mb-4"
error={form.formState.errors.domain?.message} error={form.formState.errors.domain?.message}
@@ -112,7 +112,10 @@ export default function EditProjectDetails({ project }: Props) {
name="cors" name="cors"
control={form.control} control={form.control}
render={({ field }) => ( render={({ field }) => (
<WithLabel label="Cors"> <WithLabel
label="Cors"
error={form.formState.errors.cors?.message}
>
<TagInput <TagInput
{...field} {...field}
id="Cors" id="Cors"

View File

@@ -51,9 +51,18 @@ export const projectRouter = createTRPCRouter({
data: { data: {
name: input.name, name: input.name,
crossDomain: input.crossDomain, crossDomain: input.crossDomain,
filters: input.filters, filters:
domain: input.domain ? stripTrailingSlash(input.domain) : null, input.filters === undefined ? undefined : input.filters || [],
cors: input.cors?.map((c) => stripTrailingSlash(c)) || [], domain:
input.domain === undefined
? undefined
: input.domain
? stripTrailingSlash(input.domain)
: null,
cors:
input.cors === undefined
? undefined
: input.cors.map((c) => stripTrailingSlash(c)) || [],
}, },
include: { include: {
clients: { clients: {