Skip to content

Commit a515c59

Browse files
1akhanBahetisriramveeraghanta
authored andcommitted
fix: create workspace form validation (#2958)
* fix: create workspace form validation * fix: textfield placeholder typo * fix: name field onchange
1 parent a276bd2 commit a515c59

File tree

3 files changed

+13
-20
lines changed

3 files changed

+13
-20
lines changed

web/components/account/sign-in-forms/unique-code.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ export const UniqueCodeForm: React.FC<Props> = (props) => {
196196
value={value}
197197
onChange={onChange}
198198
hasError={Boolean(errors.token)}
199-
placeholder="gets-sets-fays"
199+
placeholder="gets-sets-flys"
200200
className="w-full h-[46px] placeholder:text-onboarding-text-400 border border-onboarding-border-100 pr-12"
201201
/>
202202
)}

web/components/onboarding/join-workspaces.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export const JoinWorkspaces: React.FC<Props> = ({ stepChange, setTryDiffAccount
2424
} = useForm<IWorkspace>({
2525
defaultValues: {
2626
name: "",
27-
slug: `${window.location.host}/`,
27+
slug: "",
2828
},
2929
mode: "onChange",
3030
});

web/components/onboarding/workspace.tsx

+11-18
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ export const Workspace: React.FC<Props> = (props) => {
4040

4141
const handleCreateWorkspace = async (formData: IWorkspace) => {
4242
if (isSubmitting) return;
43-
const slug = formData.slug.split("/");
44-
formData.slug = slug[slug.length - 1];
4543

4644
await workspaceService
4745
.workspaceSlugCheck(formData.slug)
@@ -118,11 +116,7 @@ export const Workspace: React.FC<Props> = (props) => {
118116
onChange={(event) => {
119117
onChange(event.target.value);
120118
setValue("name", event.target.value);
121-
if (window && window.location.host) {
122-
const host = window.location.host;
123-
const slug = event.currentTarget.value.split("/");
124-
setValue("slug", `${host}/${slug[slug.length - 1].toLocaleLowerCase().trim().replace(/ /g, "-")}`);
125-
}
119+
setValue("slug", event.target.value.toLocaleLowerCase().trim().replace(/ /g, "-"));
126120
}}
127121
placeholder="Enter workspace name..."
128122
ref={ref}
@@ -137,26 +131,25 @@ export const Workspace: React.FC<Props> = (props) => {
137131
<Controller
138132
control={control}
139133
name="slug"
140-
render={({ field: { value, ref } }) => (
141-
<div className="flex items-center relative rounded-md bg-onboarding-background-200">
134+
render={({ field: { value, ref, onChange } }) => (
135+
<div
136+
className={`flex items-center px-3 relative rounded-md bg-onboarding-background-200 border ${
137+
invalidSlug ? "border-red-500" : "border-onboarding-border-100"
138+
} `}
139+
>
140+
<span className="whitespace-nowrap text-sm">{window && window.location.host}/</span>
142141
<Input
143142
id="slug"
144143
name="slug"
145144
type="text"
146145
value={value.toLocaleLowerCase().trim().replace(/ /g, "-")}
147146
onChange={(e) => {
148-
const host = window.location.host;
149-
const slug = e.currentTarget.value.split("/");
150-
if (slug.length > 1) {
151-
/^[a-zA-Z0-9_-]+$/.test(slug[slug.length - 1]) ? setInvalidSlug(false) : setInvalidSlug(true);
152-
setValue("slug", `${host}/${slug[slug.length - 1].toLocaleLowerCase().trim().replace(/ /g, "-")}`);
153-
} else {
154-
setValue("slug", `${host}/`);
155-
}
147+
/^[a-zA-Z0-9_-]+$/.test(e.target.value) ? setInvalidSlug(false) : setInvalidSlug(true);
148+
onChange(e.target.value.toLowerCase());
156149
}}
157150
ref={ref}
158151
hasError={Boolean(errors.slug)}
159-
className="w-full h-[46px] border-onboarding-border-100"
152+
className="w-full h-[46px] !px-0 border-none"
160153
/>
161154
</div>
162155
)}

0 commit comments

Comments
 (0)