feat(site): generates unique workspace names by default (#11772)

This commit is contained in:
Bruno Quaresma
2024-01-23 15:55:29 +00:00
committed by GitHub
parent 910f17f4e7
commit 369821ea19
@@ -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 ?? "";
}