fix: archived attribute issue (#2275)

This commit is contained in:
Dhruwang Jariwala
2024-03-20 16:43:49 +05:30
committed by GitHub
parent d982ebca9d
commit 1925382980
7 changed files with 25 additions and 35 deletions

View File

@@ -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>
</>
);
}
};

View File

@@ -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 }:
/>
</>
);
}
};

View File

@@ -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>
);
}
};

View File

@@ -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>
</>
);
}
};

View File

@@ -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>
);
}
};

View File

@@ -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>
</>
);
}
};

View File

@@ -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} />
</>
);
}