mirror of
https://github.com/formbricks/formbricks.git
synced 2026-01-06 13:49:54 -06:00
final tweaks
This commit is contained in:
@@ -18,7 +18,7 @@ export const AddEndingCardButton = ({ localSurvey, addEndingCard }: AddEndingCar
|
|||||||
<PlusIcon className="h-6 w-6 text-white" />
|
<PlusIcon className="h-6 w-6 text-white" />
|
||||||
</div>
|
</div>
|
||||||
<div className="px-4 py-3 text-sm">
|
<div className="px-4 py-3 text-sm">
|
||||||
<p className="font-semibold">Add Ending</p>
|
<p className="font-semibold">Add ending</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export const AddQuestionButton = ({ addQuestion, product, isCxMode }: AddQuestio
|
|||||||
<PlusIcon className="h-5 w-5 text-white" />
|
<PlusIcon className="h-5 w-5 text-white" />
|
||||||
</div>
|
</div>
|
||||||
<div className="px-4 py-3">
|
<div className="px-4 py-3">
|
||||||
<p className="text-sm font-semibold">Add Question</p>
|
<p className="text-sm font-semibold">Add question</p>
|
||||||
<p className="mt-1 text-xs text-slate-500">Add a new question to your survey</p>
|
<p className="mt-1 text-xs text-slate-500">Add a new question to your survey</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -75,11 +75,11 @@ export const EditWelcomeCard = ({
|
|||||||
className="flex-1 rounded-r-lg border border-slate-200 transition-all duration-300 ease-in-out">
|
className="flex-1 rounded-r-lg border border-slate-200 transition-all duration-300 ease-in-out">
|
||||||
<Collapsible.CollapsibleTrigger
|
<Collapsible.CollapsibleTrigger
|
||||||
asChild
|
asChild
|
||||||
className="flex cursor-pointer justify-between p-4 hover:bg-slate-50">
|
className="flex cursor-pointer justify-between rounded-r-lg p-4 hover:bg-slate-50">
|
||||||
<div>
|
<div>
|
||||||
<div className="inline-flex">
|
<div className="inline-flex">
|
||||||
<div>
|
<div>
|
||||||
<p className="text-sm font-semibold">Welcome Card</p>
|
<p className="text-sm font-semibold">Welcome card</p>
|
||||||
{!open && (
|
{!open && (
|
||||||
<p className="mt-1 truncate text-xs text-slate-500">
|
<p className="mt-1 truncate text-xs text-slate-500">
|
||||||
{localSurvey?.welcomeCard?.enabled ? "Shown" : "Hidden"}
|
{localSurvey?.welcomeCard?.enabled ? "Shown" : "Hidden"}
|
||||||
|
|||||||
@@ -206,9 +206,7 @@ export const EditorCardMenu = ({
|
|||||||
|
|
||||||
{cardType === "question" && (
|
{cardType === "question" && (
|
||||||
<DropdownMenuSub>
|
<DropdownMenuSub>
|
||||||
<DropdownMenuSubTrigger className="cursor-pointer text-sm text-slate-600 hover:text-slate-700">
|
<DropdownMenuSubTrigger className="cursor-pointer">Add question below</DropdownMenuSubTrigger>
|
||||||
Add question below
|
|
||||||
</DropdownMenuSubTrigger>
|
|
||||||
|
|
||||||
<DropdownMenuSubContent className="ml-2">
|
<DropdownMenuSubContent className="ml-2">
|
||||||
{Object.entries(availableQuestionTypes).map(([type, name]) => {
|
{Object.entries(availableQuestionTypes).map(([type, name]) => {
|
||||||
|
|||||||
@@ -100,11 +100,11 @@ export const HiddenFieldsCard = ({
|
|||||||
className="flex-1 rounded-r-lg border border-slate-200 transition-all duration-300 ease-in-out">
|
className="flex-1 rounded-r-lg border border-slate-200 transition-all duration-300 ease-in-out">
|
||||||
<Collapsible.CollapsibleTrigger
|
<Collapsible.CollapsibleTrigger
|
||||||
asChild
|
asChild
|
||||||
className="flex cursor-pointer justify-between p-4 hover:bg-slate-50">
|
className="flex cursor-pointer justify-between rounded-r-lg p-4 hover:bg-slate-50">
|
||||||
<div>
|
<div>
|
||||||
<div className="inline-flex">
|
<div className="inline-flex">
|
||||||
<div>
|
<div>
|
||||||
<p className="text-sm font-semibold">Hidden Fields</p>
|
<p className="text-sm font-semibold">Hidden fields</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export const SurveyVariablesCard = ({
|
|||||||
className="flex-1 rounded-r-lg border border-slate-200 transition-all duration-300 ease-in-out">
|
className="flex-1 rounded-r-lg border border-slate-200 transition-all duration-300 ease-in-out">
|
||||||
<Collapsible.CollapsibleTrigger
|
<Collapsible.CollapsibleTrigger
|
||||||
asChild
|
asChild
|
||||||
className="flex cursor-pointer justify-between p-4 hover:bg-slate-50">
|
className="flex cursor-pointer justify-between rounded-r-lg p-4 hover:bg-slate-50">
|
||||||
<div>
|
<div>
|
||||||
<div className="inline-flex">
|
<div className="inline-flex">
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -388,7 +388,7 @@ export const MainNavigation = ({
|
|||||||
{sortedProducts.map((product) => (
|
{sortedProducts.map((product) => (
|
||||||
<DropdownMenuRadioItem
|
<DropdownMenuRadioItem
|
||||||
value={product.id}
|
value={product.id}
|
||||||
className="cursor-pointer break-all rounded-lg font-normal"
|
className="cursor-pointer break-all"
|
||||||
key={product.id}>
|
key={product.id}>
|
||||||
<div>
|
<div>
|
||||||
{product.config.channel === "website" ? (
|
{product.config.channel === "website" ? (
|
||||||
@@ -463,17 +463,13 @@ export const MainNavigation = ({
|
|||||||
{dropdownNavigation.map(
|
{dropdownNavigation.map(
|
||||||
(link) =>
|
(link) =>
|
||||||
!link.hidden && (
|
!link.hidden && (
|
||||||
<Link
|
<DropdownMenuItem
|
||||||
href={link.href}
|
|
||||||
target={link.target}
|
|
||||||
key={link.label}
|
key={link.label}
|
||||||
className="flex items-center">
|
icon={<link.icon className="h-4 w-4" strokeWidth={1.5} />}>
|
||||||
<DropdownMenuItem
|
<Link href={link.href} target={link.target} className="flex items-center">
|
||||||
key={link.label}
|
|
||||||
icon={<link.icon className="h-4 w-4" strokeWidth={1.5} />}>
|
|
||||||
{link.label}
|
{link.label}
|
||||||
</DropdownMenuItem>
|
</Link>
|
||||||
</Link>
|
</DropdownMenuItem>
|
||||||
)
|
)
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
@@ -247,47 +247,47 @@ test.describe("Multi Language Survey Create", async () => {
|
|||||||
await page.getByText("Welcome CardShownOn").click();
|
await page.getByText("Welcome CardShownOn").click();
|
||||||
|
|
||||||
// Add questions in default language
|
// Add questions in default language
|
||||||
await page.getByText("Add Question").click();
|
await page.getByText("Add question").click();
|
||||||
await page.getByRole("button", { name: "Single-Select" }).click();
|
await page.getByRole("button", { name: "Single-Select" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.getByRole("button", { name: "Multi-Select" }).click();
|
await page.getByRole("button", { name: "Multi-Select" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.getByRole("button", { name: "Picture Selection" }).click();
|
await page.getByRole("button", { name: "Picture Selection" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.getByRole("button", { name: "Rating" }).click();
|
await page.getByRole("button", { name: "Rating" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.getByRole("button", { name: "Net Promoter Score (NPS)" }).click();
|
await page.getByRole("button", { name: "Net Promoter Score (NPS)" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.getByRole("button", { name: "Date" }).click();
|
await page.getByRole("button", { name: "Date" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.getByRole("button", { name: "File Upload" }).click();
|
await page.getByRole("button", { name: "File Upload" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
|
|
||||||
@@ -295,13 +295,13 @@ test.describe("Multi Language Survey Create", async () => {
|
|||||||
await page.getByRole("button", { name: "Matrix" }).click();
|
await page.getByRole("button", { name: "Matrix" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.getByRole("button", { name: "Address" }).click();
|
await page.getByRole("button", { name: "Address" }).click();
|
||||||
await page
|
await page
|
||||||
.locator("div")
|
.locator("div")
|
||||||
.filter({ hasText: /^Add QuestionAdd a new question to your survey$/ })
|
.filter({ hasText: /^Add questionAdd a new question to your survey$/ })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.getByRole("button", { name: "Ranking" }).click();
|
await page.getByRole("button", { name: "Ranking" }).click();
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ export const signupUsingInviteToken = async (page: Page, name: string, email: st
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const createSurvey = async (page: Page, params: CreateSurveyParams) => {
|
export const createSurvey = async (page: Page, params: CreateSurveyParams) => {
|
||||||
const addQuestion = "Add QuestionAdd a new question to your survey";
|
const addQuestion = "Add questionAdd a new question to your survey";
|
||||||
|
|
||||||
await page.getByRole("button", { name: "Start from scratch Create a" }).click();
|
await page.getByRole("button", { name: "Start from scratch Create a" }).click();
|
||||||
await page.getByRole("button", { name: "Create survey", exact: true }).click();
|
await page.getByRole("button", { name: "Create survey", exact: true }).click();
|
||||||
@@ -324,7 +324,7 @@ export const createSurvey = async (page: Page, params: CreateSurveyParams) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const createSurveyWithLogic = async (page: Page, params: CreateSurveyWithLogicParams) => {
|
export const createSurveyWithLogic = async (page: Page, params: CreateSurveyWithLogicParams) => {
|
||||||
const addQuestion = "Add QuestionAdd a new question to your survey";
|
const addQuestion = "Add questionAdd a new question to your survey";
|
||||||
|
|
||||||
await page.getByRole("button", { name: "Start from scratch Create a" }).click();
|
await page.getByRole("button", { name: "Start from scratch Create a" }).click();
|
||||||
await page.getByRole("button", { name: "Create survey", exact: true }).click();
|
await page.getByRole("button", { name: "Create survey", exact: true }).click();
|
||||||
|
|||||||
@@ -190,11 +190,11 @@ export const MultiLanguageCard: FC<MultiLanguageCardProps> = ({
|
|||||||
open={open}>
|
open={open}>
|
||||||
<Collapsible.CollapsibleTrigger
|
<Collapsible.CollapsibleTrigger
|
||||||
asChild
|
asChild
|
||||||
className="flex cursor-pointer justify-between p-4 hover:bg-slate-50">
|
className="flex cursor-pointer justify-between rounded-r-lg p-4 hover:bg-slate-50">
|
||||||
<div>
|
<div>
|
||||||
<div className="inline-flex">
|
<div className="inline-flex">
|
||||||
<div>
|
<div>
|
||||||
<p className="text-sm font-semibold">Multiple Languages</p>
|
<p className="text-sm font-semibold">Multiple languages</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ const DropdownMenuSubTrigger: React.ComponentType<
|
|||||||
<DropdownMenuPrimitive.SubTrigger
|
<DropdownMenuPrimitive.SubTrigger
|
||||||
ref={ref as any}
|
ref={ref as any}
|
||||||
className={cn(
|
className={cn(
|
||||||
"flex cursor-default select-none items-center rounded-md px-2 py-1.5 text-sm font-medium outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100",
|
"flex cursor-default select-none items-center rounded-lg px-2 py-1.5 text-sm font-medium text-slate-600 outline-none hover:text-slate-700 focus:bg-slate-100 data-[state=open]:bg-slate-100",
|
||||||
inset && "pl-8",
|
inset && "pl-8",
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
@@ -46,7 +46,7 @@ const DropdownMenuSubContent: React.ComponentType<DropdownMenuPrimitive.Dropdown
|
|||||||
<DropdownMenuPrimitive.SubContent
|
<DropdownMenuPrimitive.SubContent
|
||||||
ref={ref as any}
|
ref={ref as any}
|
||||||
className={cn(
|
className={cn(
|
||||||
"animate-in slide-in-from-left-1 z-50 min-w-[8rem] overflow-hidden rounded-xl border border-slate-200 bg-white p-1 text-slate-700 shadow-sm",
|
"animate-in slide-in-from-left-1 z-50 min-w-[8rem] overflow-hidden rounded-lg border border-slate-200 bg-white p-1 font-medium text-slate-600 shadow-sm hover:text-slate-700",
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
{...props}
|
{...props}
|
||||||
@@ -67,7 +67,7 @@ const DropdownMenuContent: React.ComponentType<DropdownMenuPrimitive.DropdownMen
|
|||||||
ref={ref}
|
ref={ref}
|
||||||
sideOffset={sideOffset}
|
sideOffset={sideOffset}
|
||||||
className={cn(
|
className={cn(
|
||||||
"animate-in data-[side=right]:slide-in-from-left-2 data-[side=left]:slide-in-from-right-2 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-xl border border-slate-200 bg-white p-1 text-slate-700 shadow-sm",
|
"animate-in data-[side=right]:slide-in-from-left-2 data-[side=left]:slide-in-from-right-2 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-lg border border-slate-200 bg-white p-1 font-medium text-slate-700 shadow-sm",
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
{...props}
|
{...props}
|
||||||
@@ -92,7 +92,7 @@ const DropdownMenuItem: React.ForwardRefExoticComponent<
|
|||||||
<DropdownMenuPrimitive.Item
|
<DropdownMenuPrimitive.Item
|
||||||
ref={ref}
|
ref={ref}
|
||||||
className={cn(
|
className={cn(
|
||||||
"relative flex w-full cursor-pointer select-none items-center gap-x-2 rounded-lg px-2 py-1.5 text-sm font-normal outline-none focus:bg-slate-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
"relative flex w-full cursor-pointer select-none items-center gap-x-2 rounded-lg px-2 py-1.5 text-sm font-medium outline-none focus:bg-slate-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
||||||
inset && "pl-8",
|
inset && "pl-8",
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
@@ -112,7 +112,7 @@ const DropdownMenuCheckboxItem: React.ComponentType<
|
|||||||
<DropdownMenuPrimitive.CheckboxItem
|
<DropdownMenuPrimitive.CheckboxItem
|
||||||
ref={ref}
|
ref={ref}
|
||||||
className={cn(
|
className={cn(
|
||||||
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm font-medium outline-none focus:bg-slate-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
"relative flex cursor-default select-none items-center rounded-lg py-1.5 pl-8 pr-2 text-sm font-medium outline-none focus:bg-slate-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
checked={checked}
|
checked={checked}
|
||||||
@@ -136,7 +136,7 @@ const DropdownMenuRadioItem: React.ComponentType<
|
|||||||
<DropdownMenuPrimitive.RadioItem
|
<DropdownMenuPrimitive.RadioItem
|
||||||
ref={ref}
|
ref={ref}
|
||||||
className={cn(
|
className={cn(
|
||||||
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm font-medium outline-none focus:bg-slate-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
"relative flex cursor-default select-none items-center rounded-lg py-1.5 pl-8 pr-2 text-sm font-medium outline-none focus:bg-slate-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
{...props}>
|
{...props}>
|
||||||
|
|||||||
Reference in New Issue
Block a user