Skip to content

Commit

Permalink
chore: workspace level toggle (#1625)
Browse files Browse the repository at this point in the history
  • Loading branch information
aaryan610 committed Jul 23, 2023
1 parent f9c3f02 commit ff6690a
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 25 deletions.
13 changes: 12 additions & 1 deletion apps/app/components/core/issues-view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import { CreateUpdateIssueModal, DeleteIssueModal } from "components/issues";
import { CreateUpdateViewModal } from "components/views";
import { TransferIssues, TransferIssuesModal } from "components/cycles";
// ui
import { EmptyState, PrimaryButton, Spinner, Icon } from "components/ui";
import { EmptyState, PrimaryButton, Spinner, SecondaryButton } from "components/ui";
// icons
import { PlusIcon, TrashIcon } from "@heroicons/react/24/outline";
// images
Expand Down Expand Up @@ -601,6 +601,17 @@ export const IssuesView: React.FC<Props> = ({
image={emptyIssue}
buttonText="New Issue"
buttonIcon={<PlusIcon className="h-4 w-4" />}
secondaryButton={
cycleId || moduleId ? (
<SecondaryButton
className="flex items-center gap-1.5"
onClick={openIssuesListModal}
>
<PlusIcon className="h-4 w-4" />
Add an existing issue
</SecondaryButton>
) : null
}
onClick={() => {
const e = new KeyboardEvent("keydown", {
key: "c",
Expand Down
40 changes: 22 additions & 18 deletions apps/app/components/core/modals/existing-issues-list-modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,15 @@ type Props = {
handleClose: () => void;
searchParams: Partial<TProjectIssuesSearchParams>;
handleOnSubmit: (data: ISearchIssueResponse[]) => Promise<void>;
workspaceLevelToggle?: boolean;
};

export const ExistingIssuesListModal: React.FC<Props> = ({
isOpen,
handleClose: onClose,
searchParams,
handleOnSubmit,
workspaceLevelToggle = false,
}) => {
const [searchTerm, setSearchTerm] = useState("");
const [issues, setIssues] = useState<ISearchIssueResponse[]>([]);
Expand Down Expand Up @@ -194,25 +196,27 @@ export const ExistingIssuesListModal: React.FC<Props> = ({
No issues selected
</div>
)}
<Tooltip tooltipContent="Toggle workspace level search">
<div
className={`flex-shrink-0 flex items-center gap-1 text-xs cursor-pointer ${
isWorkspaceLevel ? "text-custom-text-100" : "text-custom-text-200"
}`}
>
<ToggleSwitch
value={isWorkspaceLevel}
onChange={() => setIsWorkspaceLevel((prevData) => !prevData)}
/>
<button
type="button"
onClick={() => setIsWorkspaceLevel((prevData) => !prevData)}
className="flex-shrink-0"
{workspaceLevelToggle && (
<Tooltip tooltipContent="Toggle workspace level search">
<div
className={`flex-shrink-0 flex items-center gap-1 text-xs cursor-pointer ${
isWorkspaceLevel ? "text-custom-text-100" : "text-custom-text-200"
}`}
>
workspace level
</button>
</div>
</Tooltip>
<ToggleSwitch
value={isWorkspaceLevel}
onChange={() => setIsWorkspaceLevel((prevData) => !prevData)}
/>
<button
type="button"
onClick={() => setIsWorkspaceLevel((prevData) => !prevData)}
className="flex-shrink-0"
>
workspace level
</button>
</div>
</Tooltip>
)}
</div>

<Combobox.Options static className="max-h-80 scroll-py-2 overflow-y-auto">
Expand Down
1 change: 1 addition & 0 deletions apps/app/components/issues/sidebar-select/blocked.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ export const SidebarBlockedSelect: React.FC<Props> = ({
handleClose={() => setIsBlockedModalOpen(false)}
searchParams={{ blocker_blocked_by: true, issue_id: issueId }}
handleOnSubmit={onSubmit}
workspaceLevelToggle
/>
<div className="flex flex-wrap items-start py-2">
<div className="flex items-center gap-x-2 text-sm text-custom-text-200 sm:basis-1/2">
Expand Down
1 change: 1 addition & 0 deletions apps/app/components/issues/sidebar-select/blocker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ export const SidebarBlockerSelect: React.FC<Props> = ({
handleClose={() => setIsBlockerModalOpen(false)}
searchParams={{ blocker_blocked_by: true, issue_id: issueId }}
handleOnSubmit={onSubmit}
workspaceLevelToggle
/>
<div className="flex flex-wrap items-start py-2">
<div className="flex items-center gap-x-2 text-sm text-custom-text-200 sm:basis-1/2">
Expand Down
1 change: 1 addition & 0 deletions apps/app/components/issues/sub-issues-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ export const SubIssuesList: FC<Props> = ({ parentIssue, user, disabled = false }
handleClose={() => setSubIssuesListModal(false)}
searchParams={{ sub_issue: true, issue_id: parentIssue?.id }}
handleOnSubmit={addAsSubIssue}
workspaceLevelToggle
/>
{subIssuesResponse && subIssuesResponse.sub_issues.length > 0 ? (
<Disclosure defaultOpen={true}>
Expand Down
17 changes: 11 additions & 6 deletions apps/app/components/ui/empty-state.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ type Props = {
image: any;
buttonText?: string;
buttonIcon?: any;
secondaryButton?: React.ReactNode;
onClick?: () => void;
isFullScreen?: boolean;
};
Expand All @@ -22,6 +23,7 @@ export const EmptyState: React.FC<Props> = ({
onClick,
buttonText,
buttonIcon,
secondaryButton,
isFullScreen = true,
}) => (
<div
Expand All @@ -33,12 +35,15 @@ export const EmptyState: React.FC<Props> = ({
<Image src={image} className="w-52 sm:w-60" alt={buttonText} />
<h6 className="text-xl font-semibold mt-6 sm:mt-8 mb-3">{title}</h6>
<p className="text-custom-text-300 mb-7 sm:mb-8">{description}</p>
{buttonText && (
<PrimaryButton className="flex items-center gap-1.5" onClick={onClick}>
{buttonIcon}
{buttonText}
</PrimaryButton>
)}
<div className="flex items-center gap-4">
{buttonText && (
<PrimaryButton className="flex items-center gap-1.5" onClick={onClick}>
{buttonIcon}
{buttonText}
</PrimaryButton>
)}
{secondaryButton}
</div>
</div>
</div>
);

1 comment on commit ff6690a

@vercel
Copy link

@vercel vercel bot commented on ff6690a Jul 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

plane-dev – ./apps/app

plane-dev-plane.vercel.app
plane-dev-git-develop-plane.vercel.app
plane-dev.vercel.app

Please sign in to comment.