From 51c806c12b90aa124384497856590f5010b9ff49 Mon Sep 17 00:00:00 2001 From: kolaente Date: Wed, 7 Sep 2022 17:57:44 +0200 Subject: [PATCH] feat: color the task color button when the task has a color set --- src/views/tasks/TaskDetailView.vue | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/views/tasks/TaskDetailView.vue b/src/views/tasks/TaskDetailView.vue index a584aeb6..2c5b573b 100644 --- a/src/views/tasks/TaskDetailView.vue +++ b/src/views/tasks/TaskDetailView.vue @@ -379,6 +379,8 @@ variant="secondary" icon="fill-drip" v-shortcut="'c'" + :class="{'has-light-text': color !== TASK_DEFAULT_COLOR && !colorIsDark(color)}" + :style="{'background-color': color !== TASK_DEFAULT_COLOR ? color : false}" > {{ $t('task.detail.actions.color') }} @@ -429,7 +431,7 @@ import {defineComponent} from 'vue' import cloneDeep from 'lodash.clonedeep' import TaskService from '../../services/task' -import TaskModel from '@/models/task' +import TaskModel, {TASK_DEFAULT_COLOR} from '@/models/task' import type {ITask} from '@/modelTypes/ITask' import { PRIORITIES as priorites } from '@/constants/priorities' @@ -461,6 +463,7 @@ import { setTitle } from '@/helpers/setTitle' import {getNamespaceTitle} from '@/helpers/getNamespaceTitle' import {getListTitle} from '@/helpers/getListTitle' import type { IList } from '@/modelTypes/IList' +import {colorIsDark} from '@/helpers/color/colorIsDark' function scrollIntoView(el) { if (!el) { @@ -527,6 +530,8 @@ export default defineComponent({ showDeleteModal: false, // Used to avoid flashing of empty elements if the task content is not yet loaded. visible: false, + + TASK_DEFAULT_COLOR, activeFields: { assignees: false, @@ -594,6 +599,11 @@ export default defineComponent({ shouldShowClosePopup() { return this.$route.name.includes('kanban') }, + color() { + return this.task.getHexColor + ? this.task.getHexColor() + : TASK_DEFAULT_COLOR + }, }, methods: { getNamespaceTitle, @@ -745,6 +755,8 @@ export default defineComponent({ this.task = await this.taskService.update(this.task) this.$store.dispatch('namespaces/loadNamespacesIfFavoritesDontExist') }, + + colorIsDark, }, }) @@ -932,7 +944,11 @@ $flash-background-duration: 750ms; .button { width: 100%; margin-bottom: .5rem; - justify-content: left; + justify-content: left; + + &.has-light-text { + color: var(--white); + } } }