@@ -158,9 +159,9 @@ export const PhoneInput = (props: PhoneInputProps) => {
autofocus={!guessDeviceIsMobile()}
/>
-
+
{props.labels?.button}
-
+
);
};
diff --git a/packages/embeds/js/src/features/blocks/inputs/textInput/components/TextInput.tsx b/packages/embeds/js/src/features/blocks/inputs/textInput/components/TextInput.tsx
index 1b39080c1..0e87f9d13 100644
--- a/packages/embeds/js/src/features/blocks/inputs/textInput/components/TextInput.tsx
+++ b/packages/embeds/js/src/features/blocks/inputs/textInput/components/TextInput.tsx
@@ -102,9 +102,9 @@ export const TextInput = (props: Props) => {
} else inputRef?.focus();
};
- const submitWhenEnter = (e: KeyboardEvent) => {
- if (props.block.options?.isLong) return;
- if (e.key === "Enter") submit();
+ const handleSubmit = (event: Event) => {
+ event.preventDefault();
+ submit();
};
const submitIfCtrlEnter = (e: KeyboardEvent) => {
@@ -261,14 +261,14 @@ export const TextInput = (props: Props) => {
};
return (
-
{
}
>
@@ -374,15 +375,14 @@ export const TextInput = (props: Props) => {
{props.block.options?.labels?.button}
-
+
);
};
diff --git a/packages/embeds/js/src/features/blocks/inputs/time/components/TimeForm.tsx b/packages/embeds/js/src/features/blocks/inputs/time/components/TimeForm.tsx
index f1cea77ed..a7e98a352 100644
--- a/packages/embeds/js/src/features/blocks/inputs/time/components/TimeForm.tsx
+++ b/packages/embeds/js/src/features/blocks/inputs/time/components/TimeForm.tsx
@@ -26,8 +26,9 @@ export const TimeForm = (props: Props) => {
else inputRef?.focus();
};
- const submitWhenEnter = (e: KeyboardEvent) => {
- if (e.key === "Enter") submit();
+ const handleSubmit = (event: Event) => {
+ event.preventDefault();
+ submit();
};
onMount(() => {
@@ -48,9 +49,9 @@ export const TimeForm = (props: Props) => {
};
return (
-
+
);
};
diff --git a/packages/embeds/js/src/features/blocks/inputs/url/components/UrlInput.tsx b/packages/embeds/js/src/features/blocks/inputs/url/components/UrlInput.tsx
index 99b5a06da..c934f695a 100644
--- a/packages/embeds/js/src/features/blocks/inputs/url/components/UrlInput.tsx
+++ b/packages/embeds/js/src/features/blocks/inputs/url/components/UrlInput.tsx
@@ -32,8 +32,9 @@ export const UrlInput = (props: Props) => {
else inputRef?.focus();
};
- const submitWhenEnter = (e: KeyboardEvent) => {
- if (e.key === "Enter") submit();
+ const handleSubmit = (event: Event) => {
+ event.preventDefault();
+ submit();
};
onMount(() => {
@@ -57,9 +58,9 @@ export const UrlInput = (props: Props) => {
};
return (
-
+
);
};
diff --git a/packages/embeds/react/package.json b/packages/embeds/react/package.json
index 09b8fa1b8..b1ae16ef0 100644
--- a/packages/embeds/react/package.json
+++ b/packages/embeds/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@typebot.io/react",
- "version": "0.9.20",
+ "version": "0.9.21",
"description": "Convenient library to display typebots on your React app",
"license": "FSL-1.1-ALv2",
"type": "module",
diff --git a/packages/scripts/package.json b/packages/scripts/package.json
index c381793fe..e4373bbb2 100644
--- a/packages/scripts/package.json
+++ b/packages/scripts/package.json
@@ -15,13 +15,13 @@
"migrateSubscriptionsToUsageBased": "tsx src/migrateSubscriptionsToUsageBased.ts",
"insertUsersInBrevoList": "tsx src/insertUsersInBrevoList.ts",
"getUsage": "tsx src/getUsage.ts",
- "suspendWorkspace": "tsx src/suspendWorkspace.ts",
+ "suspendWorkspace": "SKIP_ENV_CHECK=true dotenv -e ./.env.production -- tsx src/suspendWorkspace.ts",
"destroyUser": "SKIP_ENV_CHECK=true dotenv -e ./.env.production -- tsx src/destroyUser.ts",
"updateTypebot": "SKIP_ENV_CHECK=true dotenv -e ./.env.production -- tsx src/updateTypebot.ts",
- "updateWorkspace": "tsx src/updateWorkspace.ts",
+ "updateWorkspace": "SKIP_ENV_CHECK=true dotenv -e ./.env.production -- tsx src/updateWorkspace.ts",
"inspectTypebot": "SKIP_ENV_CHECK=true dotenv -e ./.env.production -- tsx src/inspectTypebot.ts",
"inspectPublishedTypebot": "tsx src/inspectPublishedTypebot.ts",
- "inspectWorkspace": "tsx src/inspectWorkspace.ts",
+ "inspectWorkspace": "SKIP_ENV_CHECK=true dotenv -e ./.env.production -- tsx src/inspectWorkspace.ts",
"getCoupon": "tsx src/getCoupon.ts",
"redeemCoupon": "tsx src/redeemCoupon.ts",
"exportResults": "SKIP_ENV_CHECK=true dotenv -e ./.env.production -- tsx src/exportResults.ts",
diff --git a/plans/biome-off-rules-plan.md b/plans/biome-off-rules-plan.md
index e4fa469e8..b573fec58 100644
--- a/plans/biome-off-rules-plan.md
+++ b/plans/biome-off-rules-plan.md
@@ -143,21 +143,7 @@ Workspaces cibles:
Pourquoi: demande souvent un vrai choix de markup ou de composition de composant, surtout quand il y a des boutons imbriques.
-### PR 3C - politique image par workspace
-
-Isoler la regle image dans une PR dediee:
-
-- `performance/noImgElement`
-
-Workspaces cibles:
-
-- `apps/landing-page`
-- autres apps Next si necessaire
-- `packages/embeds/js` a traiter a part ou a exclure selon la politique retenue
-
-Pourquoi: la regle pousse naturellement vers `next/image`, mais ce n'est pas adapte tel quel a tous les workspaces du monorepo.
-
-### PR 3D - nettoyage boucles / callbacks / mutation de parametres
+### PR 3C - nettoyage boucles / callbacks / mutation de parametres
Regrouper les refactors surtout mecaniques et peu lies a React:
@@ -172,7 +158,7 @@ Workspaces cibles:
Pourquoi: diff assez reviewable si isole, risque produit faible a moyen, et bon rendement sur du code de support.
-### PR 3E - durcissement de typage
+### PR 3D - durcissement de typage
Traiter ensuite les raccourcis de typage les plus bruyants:
@@ -186,7 +172,7 @@ Workspaces cibles:
Pourquoi: risque plus eleve sur les contrats de types partages; mieux vaut ne pas melanger ca avec les changements UI ou hooks.
-### PR 3F - correction des hooks React
+### PR 3E - correction des hooks React
Finir par les regles les plus semantiques cote React: