forked from github/plane
53e443d816
* feat: added new issue subscriber table
* dev: notification model
* feat: added CRUD operation for issue subscriber
* Revert "feat: added CRUD operation for issue subscriber"
This reverts commit b22e062576
.
* feat: added CRUD operation for issue subscriber
* dev: notification models and operations
* dev: remove delete endpoint response data
* dev: notification endpoints and fix bg worker for saving notifications
* feat: added list and unsubscribe function in issue subscriber
* dev: filter by snoozed and response update for list and permissions
* dev: update issue notifications
* dev: notification segregation
* dev: update notifications
* dev: notification filtering
* dev: add issue name in notifications
* dev: notification new endpoints
* fix: pushing local settings
* feat: notification workflow setup and made basic UI
* style: improved UX with toast alerts and other interactions
refactor: changed classnames according to new theme structure, changed all icons to material icons
* feat: showing un-read notification count
* feat: not showing 'subscribe' button on issue created by user & assigned to user
not showing 'Create by you' for view & guest of the workspace
* fix: 'read' -> 'unread' heading, my issue wrong filter
* feat: made snooze dropdown & modal
feat: switched to calendar
* fix: minor ui fixes
* feat: snooze modal date/time select
* fix: params for read/un-read notification
* style: snooze notification modal
---------
Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
Co-authored-by: pablohashescobar <nikhilschacko@gmail.com>
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
45 lines
1.0 KiB
TypeScript
45 lines
1.0 KiB
TypeScript
import React from "react";
|
|
|
|
import Image from "next/image";
|
|
|
|
// ui
|
|
import { PrimaryButton } from "components/ui";
|
|
|
|
type Props = {
|
|
title: string;
|
|
description: React.ReactNode | string;
|
|
image: any;
|
|
buttonText?: string;
|
|
buttonIcon?: any;
|
|
onClick?: () => void;
|
|
isFullScreen?: boolean;
|
|
};
|
|
|
|
export const EmptyState: React.FC<Props> = ({
|
|
title,
|
|
description,
|
|
image,
|
|
onClick,
|
|
buttonText,
|
|
buttonIcon,
|
|
isFullScreen = true,
|
|
}) => (
|
|
<div
|
|
className={`h-full w-full mx-auto grid place-items-center p-8 ${
|
|
isFullScreen ? "md:w-4/5 lg:w-3/5" : ""
|
|
}`}
|
|
>
|
|
<div className="text-center flex flex-col items-center w-full">
|
|
<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>
|
|
</div>
|
|
);
|