From 369821ea19442bdb3a3c176baacd76b6e678b240 Mon Sep 17 00:00:00 2001 From: Bruno Quaresma Date: Tue, 23 Jan 2024 12:55:29 -0300 Subject: [PATCH] feat(site): generates unique workspace names by default (#11772) --- .../CreateWorkspacePage.tsx | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx index 3f58a7177c..297339dd53 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx @@ -1,4 +1,4 @@ -import { type FC, useCallback, useState, useEffect } from "react"; +import { type FC, useCallback, useState, useEffect, useMemo } from "react"; import { Helmet } from "react-helmet-async"; import { useNavigate, useParams, useSearchParams } from "react-router-dom"; import { useMutation, useQuery, useQueryClient } from "react-query"; @@ -44,7 +44,15 @@ const CreateWorkspacePage: FC = () => { const defaultBuildParameters = getDefaultBuildParameters(searchParams); const mode = getWorkspaceMode(searchParams); const customVersionId = searchParams.get("version") ?? undefined; - const defaultName = getDefaultName(mode, searchParams); + + const defaultName = useMemo(() => { + const paramsName = searchParams.get("name"); + if (mode === "duplicate" && paramsName) { + return `${paramsName}-copy`; + } + + return paramsName ?? generateUniqueName(); + }, [mode, searchParams]); const queryClient = useQueryClient(); const autoCreateWorkspaceMutation = useMutation( @@ -249,16 +257,3 @@ function getWorkspaceMode(params: URLSearchParams): CreateWorkspaceMode { return "form"; } - -function getDefaultName(mode: CreateWorkspaceMode, params: URLSearchParams) { - if (mode === "auto") { - return generateUniqueName(); - } - - const paramsName = params.get("name"); - if (mode === "duplicate" && paramsName) { - return `${paramsName}-copy`; - } - - return paramsName ?? ""; -}