update background color
This commit is contained in:
@@ -14,7 +14,6 @@ import { Pages } from "../../../config/Pages";
|
|||||||
import { ErrorType } from "../../../helpers/types";
|
import { ErrorType } from "../../../helpers/types";
|
||||||
import { useSingleUpload } from "../../service/hooks/useServiceData";
|
import { useSingleUpload } from "../../service/hooks/useServiceData";
|
||||||
import CreateProjectSidebar, {
|
import CreateProjectSidebar, {
|
||||||
BACKGROUND_PRESETS,
|
|
||||||
SelectedUser,
|
SelectedUser,
|
||||||
} from "./components/CreateProjectSidebar";
|
} from "./components/CreateProjectSidebar";
|
||||||
import { useCreateProject } from "./hooks/useProjectData";
|
import { useCreateProject } from "./hooks/useProjectData";
|
||||||
@@ -30,7 +29,7 @@ const CreateProject: FC = () => {
|
|||||||
const [isActive, setIsActive] = useState(true);
|
const [isActive, setIsActive] = useState(true);
|
||||||
const [selectedColor, setSelectedColor] = useState("#A8E6CF");
|
const [selectedColor, setSelectedColor] = useState("#A8E6CF");
|
||||||
const [selectedUsers, setSelectedUsers] = useState<SelectedUser[]>([]);
|
const [selectedUsers, setSelectedUsers] = useState<SelectedUser[]>([]);
|
||||||
const [selectedBackground, setSelectedBackground] = useState<string>(BACKGROUND_PRESETS[0]);
|
const [selectedBackground, setSelectedBackground] = useState<string | null>(null);
|
||||||
const [backgroundImage, setBackgroundImage] = useState<File | null>(null);
|
const [backgroundImage, setBackgroundImage] = useState<File | null>(null);
|
||||||
const [workspaceId, setWorkspaceId] = useState(searchParams.get("workspaceId") ?? "");
|
const [workspaceId, setWorkspaceId] = useState(searchParams.get("workspaceId") ?? "");
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import { Pages } from "../../../config/Pages";
|
|||||||
import { ErrorType } from "../../../helpers/types";
|
import { ErrorType } from "../../../helpers/types";
|
||||||
import { useSingleUpload } from "../../service/hooks/useServiceData";
|
import { useSingleUpload } from "../../service/hooks/useServiceData";
|
||||||
import CreateProjectSidebar, {
|
import CreateProjectSidebar, {
|
||||||
BACKGROUND_PRESETS,
|
findMatchingBackgroundPreset,
|
||||||
SelectedUser,
|
SelectedUser,
|
||||||
} from "./components/CreateProjectSidebar";
|
} from "./components/CreateProjectSidebar";
|
||||||
import { useGetProjectDetail, useUpdateProject } from "./hooks/useProjectData";
|
import { useGetProjectDetail, useUpdateProject } from "./hooks/useProjectData";
|
||||||
@@ -32,7 +32,7 @@ const UpdateProject: FC = () => {
|
|||||||
const [isActive, setIsActive] = useState(true);
|
const [isActive, setIsActive] = useState(true);
|
||||||
const [selectedColor, setSelectedColor] = useState("#A8E6CF");
|
const [selectedColor, setSelectedColor] = useState("#A8E6CF");
|
||||||
const [selectedUsers, setSelectedUsers] = useState<SelectedUser[]>([]);
|
const [selectedUsers, setSelectedUsers] = useState<SelectedUser[]>([]);
|
||||||
const [selectedBackground, setSelectedBackground] = useState<string>(BACKGROUND_PRESETS[0]);
|
const [selectedBackground, setSelectedBackground] = useState<string | null>(null);
|
||||||
const [backgroundImage, setBackgroundImage] = useState<File | null>(null);
|
const [backgroundImage, setBackgroundImage] = useState<File | null>(null);
|
||||||
const [workspaceId, setWorkspaceId] = useState("");
|
const [workspaceId, setWorkspaceId] = useState("");
|
||||||
const [existingBackgroundPicture, setExistingBackgroundPicture] = useState("");
|
const [existingBackgroundPicture, setExistingBackgroundPicture] = useState("");
|
||||||
@@ -119,7 +119,9 @@ const UpdateProject: FC = () => {
|
|||||||
: "",
|
: "",
|
||||||
});
|
});
|
||||||
setIsActive(project.isActive);
|
setIsActive(project.isActive);
|
||||||
setSelectedColor(project.backgroundColor ?? "#A8E6CF");
|
const backgroundColor = project.backgroundColor ?? "#A8E6CF";
|
||||||
|
setSelectedBackground(findMatchingBackgroundPreset(backgroundColor));
|
||||||
|
setSelectedColor(backgroundColor);
|
||||||
setWorkspaceId(project.workspaceId);
|
setWorkspaceId(project.workspaceId);
|
||||||
setExistingBackgroundPicture(project.backgroundPicture ?? "");
|
setExistingBackgroundPicture(project.backgroundPicture ?? "");
|
||||||
setStartDateDefault(
|
setStartDateDefault(
|
||||||
|
|||||||
@@ -23,6 +23,14 @@ export const BACKGROUND_PRESETS = [
|
|||||||
"linear-gradient(45deg, #2c3e50, #4ca1af)",
|
"linear-gradient(45deg, #2c3e50, #4ca1af)",
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
|
export const getPresetPrimaryColor = (preset: string) =>
|
||||||
|
preset.match(/#[0-9a-fA-F]{6}/)?.[0] ?? "#A8E6CF";
|
||||||
|
|
||||||
|
export const findMatchingBackgroundPreset = (color: string) =>
|
||||||
|
BACKGROUND_PRESETS.find(
|
||||||
|
(preset) => getPresetPrimaryColor(preset).toLowerCase() === color.toLowerCase(),
|
||||||
|
) ?? null;
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
isActive: boolean;
|
isActive: boolean;
|
||||||
onIsActiveChange: (value: boolean) => void;
|
onIsActiveChange: (value: boolean) => void;
|
||||||
@@ -30,8 +38,8 @@ type Props = {
|
|||||||
onColorChange: (color: string) => void;
|
onColorChange: (color: string) => void;
|
||||||
selectedUsers: SelectedUser[];
|
selectedUsers: SelectedUser[];
|
||||||
onSelectedUsersChange: (users: SelectedUser[]) => void;
|
onSelectedUsersChange: (users: SelectedUser[]) => void;
|
||||||
selectedBackground: string;
|
selectedBackground: string | null;
|
||||||
onBackgroundChange: (background: string) => void;
|
onBackgroundChange: (background: string | null) => void;
|
||||||
backgroundImage: File | null;
|
backgroundImage: File | null;
|
||||||
onBackgroundImageChange: (file: File | null) => void;
|
onBackgroundImageChange: (file: File | null) => void;
|
||||||
workspaceId: string;
|
workspaceId: string;
|
||||||
@@ -154,7 +162,10 @@ const CreateProjectSidebar: FC<Props> = ({
|
|||||||
background,
|
background,
|
||||||
borderColor: selectedBackground === background ? "#000" : "#E2E8F0",
|
borderColor: selectedBackground === background ? "#000" : "#E2E8F0",
|
||||||
}}
|
}}
|
||||||
onClick={() => onBackgroundChange(background)}
|
onClick={() => {
|
||||||
|
onBackgroundChange(background);
|
||||||
|
onColorChange(getPresetPrimaryColor(background));
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
@@ -162,7 +173,13 @@ const CreateProjectSidebar: FC<Props> = ({
|
|||||||
|
|
||||||
<div className="mt-8">
|
<div className="mt-8">
|
||||||
<div className="text-sm mb-3">{t("taskmanager.choose_color")}</div>
|
<div className="text-sm mb-3">{t("taskmanager.choose_color")}</div>
|
||||||
<WorkspaceColorPicker selectedColor={selectedColor} onChange={onColorChange} />
|
<WorkspaceColorPicker
|
||||||
|
selectedColor={selectedColor}
|
||||||
|
onChange={(color) => {
|
||||||
|
onBackgroundChange(findMatchingBackgroundPreset(color));
|
||||||
|
onColorChange(color);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="mt-8">
|
<div className="mt-8">
|
||||||
|
|||||||
Reference in New Issue
Block a user