mirror of
https://github.com/formbricks/formbricks.git
synced 2026-02-04 18:49:39 -06:00
fix: archived attribute issue (#2275)
This commit is contained in:
committed by
GitHub
parent
d982ebca9d
commit
1925382980
@@ -1,21 +1,21 @@
|
||||
"use client";
|
||||
|
||||
import { AttributeDetailModal } from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/AttributeDetailModal";
|
||||
import { AttributeClassDataRow } from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/AttributeRowData";
|
||||
import { AttributeTableHeading } from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/AttributeTableHeading";
|
||||
import { HowToAddAttributesButton } from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/HowToAddAttributesButton";
|
||||
import { UploadAttributesModal } from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/UploadAttributesModal";
|
||||
import { useState } from "react";
|
||||
import { useMemo } from "react";
|
||||
|
||||
import { TAttributeClass } from "@formbricks/types/attributeClasses";
|
||||
import { Switch } from "@formbricks/ui/Switch";
|
||||
|
||||
import AttributeDetailModal from "./AttributeDetailModal";
|
||||
import UploadAttributesModal from "./UploadAttributesModal";
|
||||
|
||||
export default function AttributeClassesTable({
|
||||
attributeClasses,
|
||||
children: [TableHeading, howToAddAttributeButton, attributeRows],
|
||||
}: {
|
||||
interface AttributeClassesTableProps {
|
||||
attributeClasses: TAttributeClass[];
|
||||
children: [JSX.Element, JSX.Element, JSX.Element[]];
|
||||
}) {
|
||||
}
|
||||
|
||||
export const AttributeClassesTable = ({ attributeClasses }: AttributeClassesTableProps) => {
|
||||
const [isAttributeDetailModalOpen, setAttributeDetailModalOpen] = useState(false);
|
||||
const [isUploadCSVModalOpen, setUploadCSVModalOpen] = useState(false);
|
||||
const [activeAttributeClass, setActiveAttributeClass] = useState<TAttributeClass | null>(null);
|
||||
@@ -51,17 +51,17 @@ export default function AttributeClassesTable({
|
||||
<Switch className="mx-3" checked={showArchived} onCheckedChange={toggleShowArchived} />
|
||||
</div>
|
||||
)}
|
||||
{howToAddAttributeButton}
|
||||
<HowToAddAttributesButton />
|
||||
</div>
|
||||
<div className="rounded-lg border border-slate-200">
|
||||
{TableHeading}
|
||||
<AttributeTableHeading />
|
||||
<div className="grid-cols-7">
|
||||
{displayedAttributeClasses.map((attributeClass, index) => (
|
||||
<button
|
||||
onClick={() => handleOpenAttributeDetailModalClick(attributeClass)}
|
||||
className="w-full"
|
||||
key={attributeClass.id}>
|
||||
{attributeRows[index]}
|
||||
<AttributeClassDataRow attributeClass={attributeClass} key={index} />
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
@@ -77,4 +77,4 @@ export default function AttributeClassesTable({
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -12,7 +12,7 @@ interface AttributeDetailModalProps {
|
||||
attributeClass: TAttributeClass;
|
||||
}
|
||||
|
||||
export default function AttributeDetailModal({ open, setOpen, attributeClass }: AttributeDetailModalProps) {
|
||||
export const AttributeDetailModal = ({ open, setOpen, attributeClass }: AttributeDetailModalProps) => {
|
||||
const tabs = [
|
||||
{
|
||||
title: "Activity",
|
||||
@@ -36,4 +36,4 @@ export default function AttributeDetailModal({ open, setOpen, attributeClass }:
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@ import { TagIcon } from "lucide-react";
|
||||
import { timeSinceConditionally } from "@formbricks/lib/time";
|
||||
import { Badge } from "@formbricks/ui/Badge";
|
||||
|
||||
export default function AttributeClassDataRow({ attributeClass }) {
|
||||
export const AttributeClassDataRow = ({ attributeClass }) => {
|
||||
return (
|
||||
<div className="m-2 grid h-16 grid-cols-5 content-center rounded-lg hover:bg-slate-100">
|
||||
<div className="col-span-5 flex items-center pl-6 text-sm sm:col-span-3">
|
||||
@@ -31,4 +31,4 @@ export default function AttributeClassDataRow({ attributeClass }) {
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export default function AttributeTableHeading() {
|
||||
export const AttributeTableHeading = () => {
|
||||
return (
|
||||
<>
|
||||
<div className="grid h-12 grid-cols-5 content-center rounded-lg bg-slate-100 text-left text-sm font-semibold text-slate-900">
|
||||
@@ -8,4 +8,4 @@ export default function AttributeTableHeading() {
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2,7 +2,7 @@ import { HelpCircleIcon } from "lucide-react";
|
||||
|
||||
import { Button } from "@formbricks/ui/Button";
|
||||
|
||||
export default function HowToAddAttributesButton() {
|
||||
export const HowToAddAttributesButton = () => {
|
||||
return (
|
||||
<Button
|
||||
variant="secondary"
|
||||
@@ -12,4 +12,4 @@ export default function HowToAddAttributesButton() {
|
||||
How to add attributes
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -5,7 +5,7 @@ interface UploadAttributesModalProps {
|
||||
setOpen: (v: boolean) => void;
|
||||
}
|
||||
|
||||
export default function UploadAttributesModal({ open, setOpen }: UploadAttributesModalProps) {
|
||||
export const UploadAttributesModal = ({ open, setOpen }: UploadAttributesModalProps) => {
|
||||
return (
|
||||
<>
|
||||
<Modal open={open} setOpen={setOpen}>
|
||||
@@ -13,4 +13,4 @@ export default function UploadAttributesModal({ open, setOpen }: UploadAttribute
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
import AttributeClassesTable from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/AttributeClassesTable";
|
||||
import AttributeClassDataRow from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/AttributeRowData";
|
||||
import AttributeTableHeading from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/AttributeTableHeading";
|
||||
import HowToAddAttributesButton from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/HowToAddAttributesButton";
|
||||
import { AttributeClassesTable } from "@/app/(app)/environments/[environmentId]/(actionsAndAttributes)/attributes/components/AttributeClassesTable";
|
||||
import { Metadata } from "next";
|
||||
|
||||
import { getAttributeClasses } from "@formbricks/lib/attributeClass/service";
|
||||
@@ -15,14 +12,7 @@ export default async function AttributesPage({ params }) {
|
||||
|
||||
return (
|
||||
<>
|
||||
<AttributeClassesTable attributeClasses={attributeClasses}>
|
||||
<AttributeTableHeading />
|
||||
<HowToAddAttributesButton />
|
||||
|
||||
{attributeClasses.map((attributeClass) => (
|
||||
<AttributeClassDataRow key={attributeClass.id} attributeClass={attributeClass} />
|
||||
))}
|
||||
</AttributeClassesTable>
|
||||
<AttributeClassesTable attributeClasses={attributeClasses} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user