feat: set slug on workspace name change

This commit is contained in:
Henry
2026-04-10 21:26:56 +01:00
parent cb76926041
commit 5c5d208fc4

View File

@@ -43,8 +43,16 @@ export default function WorkspaceNameView() {
const [name, setName] = useState(""); const [name, setName] = useState("");
const [slug, setSlug] = useState(""); const [slug, setSlug] = useState("");
const [slugManuallyEdited, setSlugManuallyEdited] = useState(false);
const [description, setDescription] = useState(""); const [description, setDescription] = useState("");
const handleNameChange = (value: string) => {
setName(value);
if (isProToggle && !slugManuallyEdited) {
setSlug(slugify(value));
}
};
const [debouncedSlug] = useDebounce(slug, 500); const [debouncedSlug] = useDebounce(slug, 500);
const isTyping = slug !== debouncedSlug; const isTyping = slug !== debouncedSlug;
@@ -178,7 +186,7 @@ export default function WorkspaceNameView() {
id="workspace-name-input" id="workspace-name-input"
placeholder={t`Workspace name`} placeholder={t`Workspace name`}
value={name} value={name}
onChange={(e) => setName(e.target.value)} onChange={(e) => handleNameChange(e.target.value)}
onKeyDown={(e) => e.key === "Enter" && handleContinue()} onKeyDown={(e) => e.key === "Enter" && handleContinue()}
maxLength={64} maxLength={64}
/> />
@@ -187,7 +195,8 @@ export default function WorkspaceNameView() {
<Input <Input
placeholder={t`your-workspace`} placeholder={t`your-workspace`}
value={isProToggle ? slug : t`your-workspace`} value={isProToggle ? slug : t`your-workspace`}
onChange={(e) => onChange={(e) => {
setSlugManuallyEdited(true);
setSlug( setSlug(
e.target.value e.target.value
.toLowerCase() .toLowerCase()
@@ -195,8 +204,8 @@ export default function WorkspaceNameView() {
.replace(/\s+/g, "-") .replace(/\s+/g, "-")
.replace(/-+/g, "-") .replace(/-+/g, "-")
.slice(0, 60), .slice(0, 60),
) );
} }}
disabled={!isProToggle} disabled={!isProToggle}
prefix="kan.bn/" prefix="kan.bn/"
className={ className={