diff --git a/apps/app/pages/projects/[projectId]/issues/[issueId].tsx b/apps/app/pages/projects/[projectId]/issues/[issueId].tsx
index 1f0a6ae96..d3bd6b75a 100644
--- a/apps/app/pages/projects/[projectId]/issues/[issueId].tsx
+++ b/apps/app/pages/projects/[projectId]/issues/[issueId].tsx
@@ -7,7 +7,7 @@ import React, { useCallback, useEffect, useState } from "react";
// swr
import useSWR, { mutate } from "swr";
// react hook form
-import { Controller, useForm } from "react-hook-form";
+import { useForm, Controller } from "react-hook-form";
// headless ui
import { Disclosure, Menu, Tab, Transition } from "@headlessui/react";
// services
@@ -17,14 +17,13 @@ import {
PROJECT_ISSUES_ACTIVITY,
PROJECT_ISSUES_COMMENTS,
PROJECT_ISSUES_LIST,
- STATE_LIST,
} from "constants/fetch-keys";
// hooks
import useUser from "lib/hooks/useUser";
// hoc
import withAuth from "lib/hoc/withAuthWrapper";
// layouts
-import AppLayout from "layouts/AppLayout";
+import AppLayout from "layouts/app-layout";
// components
import CreateUpdateIssuesModal from "components/project/issues/CreateUpdateIssueModal";
import IssueCommentSection from "components/project/issues/issue-detail/comment/IssueCommentSection";
@@ -49,13 +48,14 @@ import {
} from "@heroicons/react/24/outline";
import Link from "next/link";
import AddAsSubIssue from "components/command-palette/addAsSubIssue";
+import ConfirmIssueDeletion from "components/project/issues/confirm-issue-deletion";
+
+const RichTextEditor = dynamic(() => import("components/lexical/editor"), {
+ ssr: false,
+});
const IssueDetail: NextPage = () => {
- const router = useRouter();
-
- const { issueId, projectId } = router.query;
-
- const { activeWorkspace, activeProject, issues, mutateIssues, states } = useUser();
+ const [deleteIssueModal, setDeleteIssueModal] = useState(false);
const [isOpen, setIsOpen] = useState(false);
const [isAddAsSubIssueOpen, setIsAddAsSubIssueOpen] = useState(false);
@@ -67,19 +67,18 @@ const IssueDetail: NextPage = () => {
>(undefined);
const [issueDescriptionValue, setIssueDescriptionValue] = useState("");
+
+ const router = useRouter();
+
+ const { issueId, projectId } = router.query;
+
+ const { activeWorkspace, activeProject, issues, mutateIssues, states } = useUser();
+
const handleDescriptionChange: any = (value: any) => {
console.log(value);
setIssueDescriptionValue(value);
};
- const RichTextEditor = dynamic(() => import("components/lexical/editor"), {
- ssr: false,
- });
-
- const LexicalViewer = dynamic(() => import("components/lexical/viewer"), {
- ssr: false,
- });
-
const {
register,
formState: { errors },
@@ -143,8 +142,13 @@ const IssueDetail: NextPage = () => {
false
);
+ const payload = {
+ ...formData,
+ // description: formData.description ? JSON.parse(formData.description) : null,
+ };
+
issuesServices
- .patchIssue(activeWorkspace.slug, projectId as string, issueId as string, formData)
+ .patchIssue(activeWorkspace.slug, projectId as string, issueId as string, payload)
.then((response) => {
console.log(response);
})
@@ -159,6 +163,7 @@ const IssueDetail: NextPage = () => {
if (issueDetail)
reset({
...issueDetail,
+ // description: JSON.stringify(issueDetail.description),
blockers_list:
issueDetail.blockers_list ??
issueDetail.blocker_issues?.map((issue) => issue.blocker_issue_detail?.id),
@@ -208,8 +213,50 @@ const IssueDetail: NextPage = () => {
}
};
+ // console.log(issueDetail);
+
return (
-
+
+
+
+
+ }
+ right={
+
+ {
+ if (!prevIssue) return;
+ router.push(`/projects/${prevIssue.project}/issues/${prevIssue.id}`);
+ }}
+ />
+ {
+ if (!nextIssue) return;
+ router.push(`/projects/${nextIssue.project}/issues/${nextIssue?.id}`);
+ }}
+ position="reverse"
+ />
+
+ }
+ >
{
...preloadedData,
}}
/>
+ setDeleteIssueModal(false)}
+ isOpen={deleteIssueModal}
+ data={issueDetail}
+ />
{
{issueDetail && activeProject ? (
-
-
-
-
-
-
+
{issueDetail.parent !== null && issueDetail.parent !== "" ? (
@@ -332,15 +372,21 @@ const IssueDetail: NextPage = () => {
{/* (
+ render={({ field: { value, onChange } }) => (
{
+ debounce(() => {
+ console.log("Debounce");
+ // handleSubmit(submitChanges)();
+ }, 5000)();
+ onChange(val);
+ }}
id="issueDescriptionEditor"
- value={JSON.parse(issueDetail.description)}
/>
)}
/> */}
- {/* */}
{subIssues && subIssues.length > 0 ? (
@@ -568,34 +614,13 @@ const IssueDetail: NextPage = () => {
-
-
- {
- if (!prevIssue) return;
- router.push(`/projects/${prevIssue.project}/issues/${prevIssue.id}`);
- }}
- />
- {
- if (!nextIssue) return;
- router.push(`/projects/${nextIssue.project}/issues/${nextIssue?.id}`);
- }}
- position="reverse"
- />
-
+
diff --git a/apps/app/pages/projects/[projectId]/issues/index.tsx b/apps/app/pages/projects/[projectId]/issues/index.tsx
index cfdb6d430..da5df3104 100644
--- a/apps/app/pages/projects/[projectId]/issues/index.tsx
+++ b/apps/app/pages/projects/[projectId]/issues/index.tsx
@@ -3,11 +3,13 @@ import React, { useEffect, useState } from "react";
import type { NextPage } from "next";
import { useRouter } from "next/router";
// swr
-import useSWR from "swr";
+import useSWR, { mutate } from "swr";
// headless ui
import { Popover, Transition } from "@headlessui/react";
// hoc
import withAuth from "lib/hoc/withAuthWrapper";
+// services
+import issuesServices from "lib/services/issues.service";
// hooks
import useUser from "lib/hooks/useUser";
import useIssuesProperties from "lib/hooks/useIssuesProperties";
@@ -18,23 +20,31 @@ import projectService from "lib/services/project.service";
// commons
import { classNames, replaceUnderscoreIfSnakeCase } from "constants/common";
// layouts
-import AppLayout from "layouts/AppLayout";
+import AppLayout from "layouts/app-layout";
// hooks
import useIssuesFilter from "lib/hooks/useIssuesFilter";
// components
import ListView from "components/project/issues/ListView";
import BoardView from "components/project/issues/BoardView";
-import ConfirmIssueDeletion from "components/project/issues/ConfirmIssueDeletion";
+import ConfirmIssueDeletion from "components/project/issues/confirm-issue-deletion";
import CreateUpdateIssuesModal from "components/project/issues/CreateUpdateIssueModal";
// ui
-import { Spinner, CustomMenu, BreadcrumbItem, Breadcrumbs } from "ui";
-import { EmptySpace, EmptySpaceItem } from "ui/EmptySpace";
-import HeaderButton from "ui/HeaderButton";
+import {
+ Spinner,
+ CustomMenu,
+ BreadcrumbItem,
+ Breadcrumbs,
+ EmptySpace,
+ EmptySpaceItem,
+ HeaderButton,
+} from "ui";
// icons
import { ChevronDownIcon, ListBulletIcon, RectangleStackIcon } from "@heroicons/react/24/outline";
import { PlusIcon, Squares2X2Icon } from "@heroicons/react/20/solid";
// types
-import type { IIssue, Properties, NestedKeyOf } from "types";
+import type { IIssue, Properties, NestedKeyOf, IssueResponse } from "types";
+// fetch-keys
+import { PROJECT_ISSUES_LIST } from "constants/fetch-keys";
const groupByOptions: Array<{ name: string; key: NestedKeyOf
| null }> = [
{ name: "State", key: "state_detail.name" },
@@ -101,6 +111,26 @@ const ProjectIssues: NextPage = () => {
}
);
+ const partialUpdateIssue = (formData: Partial, issueId: string) => {
+ if (!activeWorkspace || !activeProject) return;
+ issuesServices
+ .patchIssue(activeWorkspace.slug, activeProject.id, issueId, formData)
+ .then((response) => {
+ mutate(
+ PROJECT_ISSUES_LIST(activeWorkspace.slug, activeProject.id),
+ (prevData) => ({
+ ...(prevData as IssueResponse),
+ results:
+ prevData?.results.map((issue) => (issue.id === response.id ? response : issue)) ?? [],
+ }),
+ false
+ );
+ })
+ .catch((error) => {
+ console.log(error);
+ });
+ };
+
const {
issueView,
setIssueView,
@@ -111,7 +141,7 @@ const ProjectIssues: NextPage = () => {
setFilterIssue,
orderBy,
filterIssue,
- } = useIssuesFilter(projectIssues);
+ } = useIssuesFilter(projectIssues?.results ?? []);
useEffect(() => {
if (!isOpen) {
@@ -123,7 +153,161 @@ const ProjectIssues: NextPage = () => {
}, [isOpen]);
return (
-
+
+
+
+
+ }
+ right={
+
+
+
+
+
+
+ {({ open }) => (
+ <>
+
+ View
+
+
+
+
+
+
+
+
Group by
+ option.key === groupByProperty)?.name ??
+ "Select"
+ }
+ >
+ {groupByOptions.map((option) => (
+ setGroupByProperty(option.key)}
+ >
+ {option.name}
+
+ ))}
+
+
+
+
Order by
+ option.key === orderBy)?.name ??
+ "Select"
+ }
+ >
+ {orderByOptions.map((option) =>
+ groupByProperty === "priority" && option.key === "priority" ? null : (
+ setOrderBy(option.key)}
+ >
+ {option.name}
+
+ )
+ )}
+
+
+
+
Issue type
+ option.key === filterIssue)?.name ??
+ "Select"
+ }
+ >
+ {filterIssueOptions.map((option) => (
+ setFilterIssue(option.key)}
+ >
+ {option.name}
+
+ ))}
+
+
+
+
+
Properties
+
+ {Object.keys(properties).map((key) => (
+
+ ))}
+
+
+
+
+
+ >
+ )}
+
+
{
+ const e = new KeyboardEvent("keydown", {
+ key: "i",
+ ctrlKey: true,
+ });
+ document.dispatchEvent(e);
+ }}
+ />
+
+ }
+ >
{
) : projectIssues.count > 0 ? (
<>
-
-
-
-
-
-
-
Project Issues
-
-
-
-
-
-
- {({ open }) => (
- <>
-
- View
-
-
-
-
-
-
-
-
Group by
- option.key === groupByProperty)
- ?.name ?? "Select"
- }
- >
- {groupByOptions.map((option) => (
- setGroupByProperty(option.key)}
- >
- {option.name}
-
- ))}
-
-
-
-
Order by
- option.key === orderBy)?.name ??
- "Select"
- }
- >
- {orderByOptions.map((option) =>
- groupByProperty === "priority" &&
- option.key === "priority" ? null : (
- setOrderBy(option.key)}
- >
- {option.name}
-
- )
- )}
-
-
-
-
Issue type
- option.key === filterIssue)
- ?.name ?? "Select"
- }
- >
- {filterIssueOptions.map((option) => (
- setFilterIssue(option.key)}
- >
- {option.name}
-
- ))}
-
-
-
-
-
Properties
-
- {Object.keys(properties).map((key) => (
-
- ))}
-
-
-
-
-
- >
- )}
-
-
{
- const e = new KeyboardEvent("keydown", {
- key: "i",
- ctrlKey: true,
- });
- document.dispatchEvent(e);
- }}
- />
-
-
-
{issueView === "list" ? (
{
selectedGroup={groupByProperty}
setSelectedIssue={setSelectedIssue}
handleDeleteIssue={setDeleteIssue}
+ partialUpdateIssue={partialUpdateIssue}
/>
) : (
-
+
)}
diff --git a/apps/app/pages/projects/[projectId]/members.tsx b/apps/app/pages/projects/[projectId]/members.tsx
index 4682ff79b..9eb046722 100644
--- a/apps/app/pages/projects/[projectId]/members.tsx
+++ b/apps/app/pages/projects/[projectId]/members.tsx
@@ -17,7 +17,7 @@ import { PROJECT_MEMBERS, PROJECT_INVITATIONS } from "constants/fetch-keys";
// hoc
import withAuth from "lib/hoc/withAuthWrapper";
// layouts
-import AppLayout from "layouts/AppLayout";
+import AppLayout from "layouts/app-layout";
// components
import SendProjectInvitationModal from "components/project/SendProjectInvitationModal";
import ConfirmProjectMemberRemove from "components/project/ConfirmProjectMemberRemove";
@@ -92,7 +92,15 @@ const ProjectMembers: NextPage = () => {
];
return (
-
+
+
+
+
+ }
+ right={ setIsOpen(true)} />}
+ >
{
@@ -140,14 +148,6 @@ const ProjectMembers: NextPage = () => {
) : (
-
-
-
-
-
-
Invite Members
- setIsOpen(true)} />
-
{members && members.length === 0 ? null : (
@@ -246,7 +246,7 @@ const ProjectMembers: NextPage = () => {
Active
) : (
-
+
Pending
)}
diff --git a/apps/app/pages/projects/[projectId]/settings.tsx b/apps/app/pages/projects/[projectId]/settings.tsx
index 693fdcf40..6e7800d0e 100644
--- a/apps/app/pages/projects/[projectId]/settings.tsx
+++ b/apps/app/pages/projects/[projectId]/settings.tsx
@@ -12,7 +12,7 @@ import { Tab } from "@headlessui/react";
// hoc
import withAuth from "lib/hoc/withAuthWrapper";
// layouts
-import AppLayout from "layouts/AppLayout";
+import SettingsLayout from "layouts/settings-layout";
// service
import projectServices from "lib/services/project.service";
// hooks
@@ -26,6 +26,26 @@ import { Breadcrumbs, BreadcrumbItem } from "ui/Breadcrumbs";
// types
import type { IProject, IWorkspace } from "types";
+const GeneralSettings = dynamic(() => import("components/project/settings/GeneralSettings"), {
+ loading: () => Loading...
,
+ ssr: false,
+});
+
+const ControlSettings = dynamic(() => import("components/project/settings/ControlSettings"), {
+ loading: () => Loading...
,
+ ssr: false,
+});
+
+const StatesSettings = dynamic(() => import("components/project/settings/StatesSettings"), {
+ loading: () => Loading...
,
+ ssr: false,
+});
+
+const LabelsSettings = dynamic(() => import("components/project/settings/LabelsSettings"), {
+ loading: () => Loading...
,
+ ssr: false,
+});
+
const defaultValues: Partial = {
name: "",
description: "",
@@ -34,27 +54,6 @@ const defaultValues: Partial = {
};
const ProjectSettings: NextPage = () => {
- // FIXME: instead of using dynamic import inside component use it outside
- const GeneralSettings = dynamic(() => import("components/project/settings/GeneralSettings"), {
- loading: () => Loading...
,
- ssr: false,
- });
-
- const ControlSettings = dynamic(() => import("components/project/settings/ControlSettings"), {
- loading: () => Loading...
,
- ssr: false,
- });
-
- const StatesSettings = dynamic(() => import("components/project/settings/StatesSettings"), {
- loading: () => Loading...
,
- ssr: false,
- });
-
- const LabelsSettings = dynamic(() => import("components/project/settings/LabelsSettings"), {
- loading: () => Loading...
,
- ssr: false,
- });
-
const {
register,
handleSubmit,
@@ -133,14 +132,38 @@ const ProjectSettings: NextPage = () => {
});
};
+ const sidebarLinks: Array<{
+ label: string;
+ href: string;
+ }> = [
+ {
+ label: "General",
+ href: "#",
+ },
+ {
+ label: "Control",
+ href: "#",
+ },
+ {
+ label: "States",
+ href: "#",
+ },
+ {
+ label: "Labels",
+ href: "#",
+ },
+ ];
+
return (
-
-
+
-
+ }
+ links={sidebarLinks}
+ >
{projectDetails ? (
@@ -186,7 +209,7 @@ const ProjectSettings: NextPage = () => {
)}
-
+
);
};
diff --git a/apps/app/pages/projects/index.tsx b/apps/app/pages/projects/index.tsx
index cb1b29ac6..f8cfd12b5 100644
--- a/apps/app/pages/projects/index.tsx
+++ b/apps/app/pages/projects/index.tsx
@@ -6,7 +6,7 @@ import useUser from "lib/hooks/useUser";
// hoc
import withAuth from "lib/hoc/withAuthWrapper";
// layouts
-import AppLayout from "layouts/AppLayout";
+import AppLayout from "layouts/app-layout";
// components
import ProjectMemberInvitations from "components/project/memberInvitations";
import ConfirmProjectDeletion from "components/project/confirm-project-deletion";
diff --git a/apps/app/pages/signin.tsx b/apps/app/pages/signin.tsx
index 79fe5bff2..3ccadd5ea 100644
--- a/apps/app/pages/signin.tsx
+++ b/apps/app/pages/signin.tsx
@@ -101,7 +101,7 @@ const SignIn: NextPage = () => {
>
{isGoogleAuthenticationLoading && (
-
Signing in with Google. Please wait...
+ Signing in with Google. Please wait...
)}
diff --git a/apps/app/pages/workspace/index.tsx b/apps/app/pages/workspace/index.tsx
index 578c3f4db..94921eaf2 100644
--- a/apps/app/pages/workspace/index.tsx
+++ b/apps/app/pages/workspace/index.tsx
@@ -4,7 +4,7 @@ import Link from "next/link";
// react
import React from "react";
// layouts
-import AppLayout from "layouts/AppLayout";
+import AppLayout from "layouts/app-layout";
// swr
import useSWR from "swr";
// hooks
diff --git a/apps/app/pages/workspace/members.tsx b/apps/app/pages/workspace/members.tsx
index c81226d1b..945c311d3 100644
--- a/apps/app/pages/workspace/members.tsx
+++ b/apps/app/pages/workspace/members.tsx
@@ -17,7 +17,7 @@ import { WORKSPACE_INVITATIONS, WORKSPACE_MEMBERS } from "constants/fetch-keys";
// hoc
import withAuthWrapper from "lib/hoc/withAuthWrapper";
// layouts
-import AppLayout from "layouts/AppLayout";
+import AppLayout from "layouts/app-layout";
// components
import SendWorkspaceInvitationModal from "components/workspace/SendWorkspaceInvitationModal";
import ConfirmWorkspaceMemberRemove from "components/workspace/ConfirmWorkspaceMemberRemove";
@@ -75,6 +75,12 @@ const WorkspaceInvite: NextPage = () => {
meta={{
title: "Plane - Workspace Invite",
}}
+ breadcrumbs={
+
+
+
+ }
+ right={ setIsOpen(true)} />}
>
{
) : (
-
-
-
-
-
Invite Members
- setIsOpen(true)} />
-
{members && members.length === 0 ? null : (
<>
@@ -234,7 +233,7 @@ const WorkspaceInvite: NextPage = () => {
Active
) : (
-
+
Pending
)}
diff --git a/apps/app/pages/workspace/settings.tsx b/apps/app/pages/workspace/settings.tsx
index d51f48843..eb6b22f50 100644
--- a/apps/app/pages/workspace/settings.tsx
+++ b/apps/app/pages/workspace/settings.tsx
@@ -13,8 +13,7 @@ import fileServices from "lib/services/file.service";
// hoc
import withAuth from "lib/hoc/withAuthWrapper";
// layouts
-import AppLayout from "layouts/AppLayout";
-
+import AppLayout from "layouts/app-layout";
// hooks
import useUser from "lib/hooks/useUser";
import useToast from "lib/hooks/useToast";
@@ -90,6 +89,11 @@ const WorkspaceSettings = () => {
meta={{
title: "Plane - Workspace Settings",
}}
+ breadcrumbs={
+
+
+
+ }
>
{
data={activeWorkspace ?? null}
/>
-
-
-
{activeWorkspace ? (
diff --git a/apps/app/public/user.png b/apps/app/public/user.png
new file mode 100644
index 000000000..bc0251228
Binary files /dev/null and b/apps/app/public/user.png differ
diff --git a/apps/app/tailwind.config.js b/apps/app/tailwind.config.js
index 81e26f2e7..4a66f40e2 100644
--- a/apps/app/tailwind.config.js
+++ b/apps/app/tailwind.config.js
@@ -4,7 +4,7 @@ module.exports = {
theme: {
extend: {
colors: {
- theme: "#4338ca",
+ theme: "#3f76ff",
primary: "#f9fafb", // gray-50
secondary: "white",
},
diff --git a/apps/app/types/issues.d.ts b/apps/app/types/issues.d.ts
index b547188c7..484b54eb9 100644
--- a/apps/app/types/issues.d.ts
+++ b/apps/app/types/issues.d.ts
@@ -25,7 +25,8 @@ export interface IIssue {
created_at: Date;
updated_at: Date;
name: string;
- description: string;
+ // TODO change type of description
+ description: any;
priority: string | null;
start_date: string | null;
target_date: string | null;
diff --git a/apps/app/types/sprints.d.ts b/apps/app/types/sprints.d.ts
index 6e9c7367c..4603552fa 100644
--- a/apps/app/types/sprints.d.ts
+++ b/apps/app/types/sprints.d.ts
@@ -30,19 +30,6 @@ export interface CycleIssueResponse {
cycle: string;
}
-export type CycleViewProps = {
- cycle: ICycle;
- selectSprint: React.Dispatch>;
- projectId: string;
- workspaceSlug: string;
- openIssueModal: (
- sprintId: string,
- issue?: IIssue,
- actionType?: "create" | "edit" | "delete"
- ) => void;
- addIssueToSprint: (sprintId: string, issueId: string) => void;
-};
-
export type SelectSprintType =
| (ICycle & { actionType: "edit" | "delete" | "create-issue" })
| undefined;
diff --git a/apps/app/types/workspace.d.ts b/apps/app/types/workspace.d.ts
index 528e3aa48..681841c32 100644
--- a/apps/app/types/workspace.d.ts
+++ b/apps/app/types/workspace.d.ts
@@ -36,8 +36,3 @@ export interface IWorkspaceMember {
created_by: string;
updated_by: string;
}
-
-export interface ILastActiveWorkspaceDetails {
- workspace_details: IWorkspace;
- project_details: IProject[];
-}
diff --git a/apps/app/ui/Breadcrumbs/index.tsx b/apps/app/ui/Breadcrumbs/index.tsx
index fbbc240d0..a485a21d2 100644
--- a/apps/app/ui/Breadcrumbs/index.tsx
+++ b/apps/app/ui/Breadcrumbs/index.tsx
@@ -11,14 +11,12 @@ const Breadcrumbs: React.FC = ({ children }: BreadcrumbsProps)
return (
<>
-
+
@@ -37,16 +35,16 @@ const BreadcrumbItem: React.FC
= ({ title, link, icon }) =>
<>
{link ? (
-
-
+
+
{icon ?? null}
{title}
) : (
-
-
+
+
{icon}
{title}
diff --git a/apps/app/ui/Button/index.tsx b/apps/app/ui/Button/index.tsx
index 705fb5fed..878a6678d 100644
--- a/apps/app/ui/Button/index.tsx
+++ b/apps/app/ui/Button/index.tsx
@@ -5,7 +5,7 @@ type Props = {
children: React.ReactNode;
type?: "button" | "submit" | "reset";
className?: string;
- theme?: "primary" | "secondary" | "danger";
+ theme?: "primary" | "secondary" | "success" | "danger";
size?: "sm" | "rg" | "md" | "lg";
disabled?: boolean;
};
@@ -37,12 +37,16 @@ const Button = React.forwardRef
(
theme === "primary"
? `${
disabled ? "opacity-70" : ""
- } text-white shadow-sm bg-theme hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 border border-transparent`
+ } text-white shadow-sm bg-theme hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 border border-transparent`
: theme === "secondary"
- ? "border border-gray-300 bg-white"
+ ? "border bg-white"
+ : theme === "success"
+ ? `${
+ disabled ? "opacity-70" : ""
+ } text-white shadow-sm bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-green-500 border border-transparent`
: `${
disabled ? "opacity-70" : ""
- } text-white shadow-sm bg-red-600 hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 border border-transparent`,
+ } text-white shadow-sm bg-red-500 hover:bg-red-600 focus:outline-none focus:ring-2 focus:ring-red-500 border border-transparent`,
size === "sm"
? "p-2 text-xs"
: size === "md"
diff --git a/apps/app/ui/CustomListbox/index.tsx b/apps/app/ui/CustomListbox/index.tsx
index 0ab1fbad1..835b51ed1 100644
--- a/apps/app/ui/CustomListbox/index.tsx
+++ b/apps/app/ui/CustomListbox/index.tsx
@@ -131,7 +131,7 @@ const CustomListbox: React.FC = ({
? value.includes(option.value)
: value === option.value)
? "text-white"
- : "text-indigo-600"
+ : "text-theme"
}`}
>
diff --git a/apps/app/ui/EmptySpace/index.tsx b/apps/app/ui/EmptySpace/index.tsx
index 3dc454f5d..73e780849 100644
--- a/apps/app/ui/EmptySpace/index.tsx
+++ b/apps/app/ui/EmptySpace/index.tsx
@@ -31,7 +31,7 @@ const EmptySpace: React.FC = ({ title, description, children, I
{link ? (
-
+
{link.text}
→
diff --git a/apps/app/ui/HeaderButton/index.tsx b/apps/app/ui/HeaderButton/index.tsx
index 1180b9093..bac2ce292 100644
--- a/apps/app/ui/HeaderButton/index.tsx
+++ b/apps/app/ui/HeaderButton/index.tsx
@@ -24,7 +24,7 @@ const HeaderButton = ({
<>