mirror of
https://github.com/makeplane/plane.git
synced 2026-07-13 05:49:40 +02:00
fix: card gradient + kanban collapse issue (#870)
This commit is contained in:
@@ -18,12 +18,16 @@ type TProjectBoardGroupItemHeader = {
|
||||
groupByKey: string;
|
||||
projectIds: string[];
|
||||
verticalAlign: boolean;
|
||||
setVerticalAlign: (value: boolean) => void;
|
||||
setVerticalAlign: (
|
||||
value: (state: { [key: string]: boolean }) => {
|
||||
[key: string]: boolean;
|
||||
}
|
||||
) => void;
|
||||
};
|
||||
|
||||
// Todo: Vertical Align
|
||||
export const ProjectBoardGroupItemHeader: FC<TProjectBoardGroupItemHeader> = observer((props) => {
|
||||
const { groupByKey, projectIds, verticalAlign } = props;
|
||||
const { groupByKey, projectIds, verticalAlign, setVerticalAlign } = props;
|
||||
//states
|
||||
const [open, setOpen] = useState(false);
|
||||
// hooks
|
||||
@@ -71,7 +75,7 @@ export const ProjectBoardGroupItemHeader: FC<TProjectBoardGroupItemHeader> = obs
|
||||
>
|
||||
<div
|
||||
className={`line-clamp-1 inline-block overflow-hidden truncate font-medium text-custom-text-100 ${
|
||||
verticalAlign ? `vertical-lr max-h-[400px]` : ``
|
||||
verticalAlign ? `vertical-lr` : ``
|
||||
}`}
|
||||
>
|
||||
{details?.title}
|
||||
@@ -83,7 +87,7 @@ export const ProjectBoardGroupItemHeader: FC<TProjectBoardGroupItemHeader> = obs
|
||||
|
||||
<div
|
||||
className="flex h-[20px] w-[20px] flex-shrink-0 cursor-pointer items-center justify-center overflow-hidden rounded-sm transition-all hover:bg-custom-background-80"
|
||||
// onClick={() => setVerticalAlign(!verticalAlign)}
|
||||
onClick={() => setVerticalAlign((state) => ({ ...state, [groupByKey]: !verticalAlign }))}
|
||||
>
|
||||
{verticalAlign ? <Maximize2 width={12} strokeWidth={2} /> : <Minimize2 width={12} strokeWidth={2} />}
|
||||
</div>
|
||||
|
||||
@@ -17,8 +17,12 @@ import { groupDetails, highlightProjectOnDrop } from "./utils";
|
||||
type ProjectBoardGroupItem = {
|
||||
groupByKey: string;
|
||||
projectIds: string[];
|
||||
verticalAlign: boolean;
|
||||
setVerticalAlign: (value: boolean) => void;
|
||||
verticalAlign: { [key: string]: boolean };
|
||||
setVerticalAlign: (
|
||||
value: (state: { [key: string]: boolean }) => {
|
||||
[key: string]: boolean;
|
||||
}
|
||||
) => void;
|
||||
dropErrorMessage?: string;
|
||||
};
|
||||
|
||||
@@ -98,11 +102,11 @@ export const ProjectBoardGroupItem: FC<ProjectBoardGroupItem> = observer((props)
|
||||
<ProjectBoardGroupItemHeader
|
||||
groupByKey={groupByKey}
|
||||
projectIds={projectIds}
|
||||
verticalAlign={verticalAlign}
|
||||
verticalAlign={verticalAlign[`${groupByKey}`] || false}
|
||||
setVerticalAlign={setVerticalAlign}
|
||||
/>
|
||||
{/* projects placeholder */}
|
||||
{!verticalAlign && projectIds.length > 0 && (
|
||||
{!verticalAlign[groupByKey] && projectIds.length > 0 && (
|
||||
<ProjectBoardList groupByKey={groupByKey} projectIds={projectIds} />
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -14,7 +14,7 @@ type ProjectBoardGroup = {
|
||||
|
||||
export const ProjectBoardGroup: FC<ProjectBoardGroup> = observer((props) => {
|
||||
const { groupByProjectIds } = props;
|
||||
const [verticalAlign, setVerticalAlign] = useState(false);
|
||||
const [verticalAlign, setVerticalAlign] = useState<{ [key: string]: boolean }>({});
|
||||
|
||||
return (
|
||||
<div className="w-full h-full overflow-hidden overflow-x-auto relative flex px-3 space-x-3 horizontal-scrollbar scrollbar-lg">
|
||||
@@ -22,7 +22,7 @@ export const ProjectBoardGroup: FC<ProjectBoardGroup> = observer((props) => {
|
||||
<div
|
||||
key={groupKey}
|
||||
className={cn("py-3 h-full overflow-hidden flex-shrink-0", {
|
||||
"w-[320px]": !verticalAlign,
|
||||
"w-[320px]": !verticalAlign[groupKey],
|
||||
})}
|
||||
>
|
||||
<ProjectBoardGroupItem
|
||||
|
||||
@@ -148,6 +148,7 @@ const Details: React.FC<Props> = observer((props) => {
|
||||
e.stopPropagation();
|
||||
}}
|
||||
/>
|
||||
<div className="absolute inset-0 z-[1] bg-gradient-to-t to-black/60 from-transparent" />
|
||||
</div>
|
||||
<div className="flex gap-2 absolute top-2 right-2" data-prevent-nprogress>
|
||||
{(isOwner || !isArchived) && (
|
||||
@@ -186,7 +187,7 @@ const Details: React.FC<Props> = observer((props) => {
|
||||
{" "}
|
||||
<FavoriteStar
|
||||
buttonClassName={cn(
|
||||
"h-6 w-6 bg-white/30 rounded opacity-0 group-hover/project-card:opacity-100 group-hover/project-card:pointer-events-auto",
|
||||
"relative flex justify-center items-center opacity-0 z-[2] pointer-events-none flex-shrink-0 group-hover/project-card:opacity-100 group-hover/project-card:pointer-events-auto my-auto bg-white/30 rounded h-6 w-6",
|
||||
{
|
||||
"opacity-100 pointer-events-auto": project.is_favorite,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user