Add dark mode in customer dashboard (#1199)

* add dark mode in DashboardStatsItem

* add dark mode in customer side header

* add dark mode in customer view file

* fix placeholder

* fix base select input

---------

Co-authored-by: yogesh-gohil <yogeshgohil1611@gmail.com>
This commit is contained in:
Yash Kanakiya
2023-03-30 11:51:38 +05:30
committed by GitHub
parent 9249105ad6
commit 5440b0f354
12 changed files with 72 additions and 76 deletions

View File

@ -2,8 +2,9 @@
<Disclosure
v-slot="{ open }"
as="nav"
class="bg-white shadow-sm fixed top-0 left-0 z-20 w-full"
class="bg-white shadow-sm fixed top-0 left-0 z-20 w-full dark:bg-gray-800"
>
<BaseDarkHighlight />
<div class="mx-auto px-8">
<div class="flex justify-between h-16 w-full">
<div class="flex">
@ -33,8 +34,8 @@
:to="`/${globalStore.companySlug}${item.link}`"
:class="[
hasActiveUrl(item.link)
? 'border-primary-500 text-primary-600'
: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300',
? 'border-primary-500 text-primary-600 dark:text-primary-400'
: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 dark:text-gray-200',
'inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium',
]"
>
@ -43,20 +44,6 @@
</div>
</div>
<div class="hidden sm:ml-6 sm:flex sm:items-center">
<button
type="button"
class="
bg-white
p-1
rounded-full
text-gray-400
hover:text-gray-500
focus:outline-none
focus:ring-2
focus:ring-offset-2
focus:ring-primary-500
"
></button>
<!-- Profile dropdown -->
@ -85,7 +72,7 @@
<router-link :to="{ name: 'customer.profile' }">
<BaseDropdownItem>
<CogIcon
class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500 dark:group-hover:text-gray-200"
aria-hidden="true"
/>
{{ $t('navigation.settings') }}
@ -94,7 +81,7 @@
<BaseDropdownItem @click="logout">
<LogoutIcon
class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500 dark:group-hover:text-gray-200"
aria-hidden="true"
/>
{{ $t('navigation.logout') }}
@ -118,6 +105,8 @@
focus:ring-2
focus:ring-offset-2
focus:ring-primary-500
dark:bg-gray-700
dark:focus:ring-offset-gray-900
"
>
<span class="sr-only">Open main menu</span>
@ -136,15 +125,15 @@
:to="`/${globalStore.companySlug}${item.link}`"
:class="[
hasActiveUrl(item.link)
? 'bg-primary-50 border-primary-500 text-primary-700'
: 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800',
? 'bg-primary-50 border-primary-500 text-primary-700 dark:bg-gray-700 dark:text-primary-400'
: 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 dark:text-gray-200 dark:hover:bg-gray-700',
'block pl-3 pr-4 py-2 border-l-4 text-base font-medium',
]"
:aria-current="item.current ? 'page' : undefined"
>{{ item.title }}
</router-link>
</div>
<div class="pt-4 pb-3 border-t border-gray-200">
<div class="pt-4 pb-3 border-t border-gray-200 dark:border-gray-500">
<div class="flex items-center px-4">
<div class="shrink-0">
<img class="h-10 w-10 rounded-full" :src="previewAvatar" alt="" />
@ -153,26 +142,10 @@
<div class="text-base font-medium text-gray-800">
{{ globalStore.currentUser.title }}
</div>
<div class="text-sm font-medium text-gray-500">
<div class="text-sm font-medium text-gray-500 dark:text-gray-200">
{{ globalStore.currentUser.email }}
</div>
</div>
<button
type="button"
class="
ml-auto
bg-white
shrink-0
p-1
rounded-full
text-gray-400
hover:text-gray-500
focus:outline-none
focus:ring-2
focus:ring-offset-2
focus:ring-primary-500
"
></button>
</div>
<div class="mt-3 space-y-1">
<router-link
@ -182,7 +155,7 @@
:class="[
hasActiveUrl(item.link)
? 'bg-primary-50 border-primary-500 text-primary-700'
: 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800',
: 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 dark:text-gray-200 dark:hover:bg-gray-700',
'block pl-3 pr-4 py-2 border-l-4 text-base font-medium',
]"
>{{ item.title }}</router-link

View File

@ -12,18 +12,24 @@
hover:bg-gray-50
xl:p-4
lg:col-span-2
dark:backdrop-blur-xl
dark:shadow-glass
dark:border
dark:border-white/10
dark:bg-gray-800/70
"
:class="{ 'lg:!col-span-3': large }"
:to="route"
>
<div>
<span class="text-xl font-semibold leading-tight text-black xl:text-3xl">
<span class="text-xl font-semibold leading-tight text-black xl:text-3xl dark:text-white">
<slot />
</span>
<span class="block mt-1 text-sm leading-tight text-gray-500 xl:text-lg">
<span class="block mt-1 text-sm leading-tight text-gray-500 xl:text-lg dark:text-gray-300">
{{ label }}
</span>
</div>
<BaseDarkHighlight class="!bg-highlight/[.17] !top-5" />
<div class="flex items-center">
<component :is="iconComponent" class="w-10 h-10 xl:w-12 xl:h-12" />
</div>

View File

@ -1,7 +1,7 @@
<template>
<BaseContentPlaceholders
:rounded="true"
class="relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-3 xl:p-4"
class="relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-3 xl:p-4 dark:bg-gray-800"
>
<div>
<BaseContentPlaceholdersText

View File

@ -12,6 +12,7 @@
shadow
lg:col-span-2
xl:p-4
dark:bg-gray-800
"
>
<div>

View File

@ -119,11 +119,11 @@
<template #cell-actions="{ row }">
<BaseDropdown>
<template #activator>
<BaseIcon name="DotsHorizontalIcon" class="h-5 text-gray-500" />
<BaseIcon name="DotsHorizontalIcon" class="h-5 text-gray-500 dark:text-gray-200" />
</template>
<router-link :to="`estimates/${row.data.id}/view`">
<BaseDropdownItem>
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600" />
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600 dark:text-gray-200" />
{{ $t('general.view') }}
</BaseDropdownItem>
</router-link>

View File

@ -25,7 +25,7 @@
<!-- Sidebar -->
<div
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block"
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block dark:bg-gray-800"
>
<div
class="
@ -36,6 +36,7 @@
pt-8
pb-6
border border-gray-200 border-solid
dark:border-gray-600
"
>
<BaseInput
@ -70,6 +71,7 @@
mb-2
text-sm
border-b border-gray-200 border-solid
dark:border-gray-600
"
>
{{ $t('general.sort_by') }}
@ -124,7 +126,7 @@
</div>
</BaseDropdown>
<BaseButton class="ml-1" variant="white" @click="sortData">
<BaseButton class="ml-1" variant="gray" @click="sortData">
<BaseIcon v-if="getOrderBy" name="SortAscendingIcon" class="h-5" />
<BaseIcon v-else name="SortDescendingIcon" class="h-5" />
</BaseButton>
@ -138,6 +140,7 @@
overflow-y-scroll
border-l border-gray-200 border-solid
sw-scroll
dark:border-gray-600
"
>
<router-link
@ -146,9 +149,9 @@
:key="index"
:to="`/${globalStore.companySlug}/customer/estimates/${estimate.id}/view`"
:class="[
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent',
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent dark:hover:bg-gray-700',
{
'bg-gray-100 border-l-4 border-primary-500 border-solid':
'bg-gray-100 border-l-4 border-primary-500 border-solid dark:bg-gray-700':
hasActiveUrl(estimate.id),
},
]"
@ -164,6 +167,7 @@
leading-5
text-gray-500
capitalize
dark:text-gray-400
"
>
{{ estimate.estimate_number }}
@ -184,11 +188,12 @@
leading-8
text-right text-gray-900
block
dark:text-white
"
:amount="estimate.total"
:currency="estimate.currency"
/>
<div class="text-sm text-right text-gray-500 non-italic">
<div class="text-sm text-right text-gray-500 dark:text-gray-400 non-italic">
{{ estimate.formatted_estimate_date }}
</div>
</div>
@ -196,7 +201,7 @@
<p
v-if="!estimateStore.estimates.length"
class="flex justify-center px-4 mt-5 text-sm text-gray-600"
class="flex justify-center px-4 mt-5 text-sm text-gray-600 dark:text-gray-300"
>
{{ $t('estimates.no_matching_estimates') }}
</p>

View File

@ -126,11 +126,11 @@
<template #cell-actions="{ row }">
<BaseDropdown>
<template #activator>
<BaseIcon name="DotsHorizontalIcon" class="h-5 text-gray-500" />
<BaseIcon name="DotsHorizontalIcon" class="h-5 text-gray-500 dark:text-gray-200" />
</template>
<router-link :to="`invoices/${row.data.id}/view`">
<BaseDropdownItem>
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600" />
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600 dark:text-gray-200" />
{{ $t('general.view') }}
</BaseDropdownItem>
</router-link>

View File

@ -31,7 +31,7 @@
<!-- Sidebar -->
<div
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block"
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block dark:bg-gray-800"
>
<div
class="
@ -42,6 +42,7 @@
pt-8
pb-6
border border-gray-200 border-solid
dark:border-gray-600
"
>
<BaseInput
@ -76,6 +77,7 @@
mb-2
text-sm
border-b border-gray-200 border-solid
dark:border-gray-600
"
>
{{ $t('general.sort_by') }}
@ -130,7 +132,7 @@
</div>
</BaseDropdown>
<BaseButton class="ml-1" variant="white" @click="sortData">
<BaseButton class="ml-1" variant="gray" @click="sortData">
<BaseIcon v-if="getOrderBy" name="SortAscendingIcon" class="h-5" />
<BaseIcon v-else name="SortDescendingIcon" class="h-5" />
</BaseButton>
@ -144,6 +146,7 @@
overflow-y-scroll
border-l border-gray-200 border-solid
sw-scroll
dark:border-gray-600
"
>
<router-link
@ -152,9 +155,9 @@
:key="index"
:to="`/${globalStore.companySlug}/customer/invoices/${invoice.id}/view`"
:class="[
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent',
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent dark:hover:bg-gray-700',
{
'bg-gray-100 border-l-4 border-primary-500 border-solid':
'bg-gray-100 border-l-4 border-primary-500 border-solid dark:bg-gray-700':
hasActiveUrl(invoice.id),
},
]"
@ -170,6 +173,7 @@
text-gray-500
capitalize
text-md
dark:text-gray-400
"
>
{{ invoice.invoice_number }}
@ -189,12 +193,13 @@
leading-8
text-right text-gray-900
block
dark:text-white
"
:amount="invoice.total"
:currency="invoice.currency"
/>
<div class="text-sm text-right text-gray-500 non-italic">
<div class="text-sm text-right text-gray-500 dark:text-gray-400 non-italic">
{{ invoice.formatted_invoice_date }}
</div>
</div>
@ -202,7 +207,7 @@
<p
v-if="!invoiceStore.invoices.length"
class="flex justify-center px-4 mt-5 text-sm text-gray-600"
class="flex justify-center px-4 mt-5 text-sm text-gray-600 dark:text-gray-300"
>
{{ $t('invoices.no_matching_invoices') }}
</p>

View File

@ -111,11 +111,11 @@
<template #cell-actions="{ row }">
<BaseDropdown>
<template #activator>
<BaseIcon name="DotsHorizontalIcon" class="w-5 text-gray-500" />
<BaseIcon name="DotsHorizontalIcon" class="w-5 text-gray-500 dark:text-gray-200" />
</template>
<router-link :to="`payments/${row.data.id}/view`">
<BaseDropdownItem>
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600" />
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600 dark:text-gray-200" />
{{ $t('general.view') }}
</BaseDropdownItem>
</router-link>

View File

@ -19,7 +19,7 @@
<!-- Sidebar -->
<div
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block"
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block dark:bg-gray-800"
>
<div
class="
@ -30,6 +30,7 @@
pt-8
pb-6
border border-gray-200 border-solid
dark:border-gray-600
"
>
<BaseInput
@ -64,6 +65,7 @@
mb-2
text-sm
border-b border-gray-200 border-solid
dark:border-gray-600
"
>
{{ $t('general.sort_by') }}
@ -118,7 +120,7 @@
</div>
</BaseDropdown>
<BaseButton class="ml-1" variant="white" @click="sortData">
<BaseButton class="ml-1" variant="gray" @click="sortData">
<BaseIcon v-if="getOrderBy" name="SortAscendingIcon" class="h-5" />
<BaseIcon v-else name="SortDescendingIcon" class="h-5" />
</BaseButton>
@ -132,6 +134,7 @@
overflow-y-scroll
border-l border-gray-200 border-solid
sw-scroll
dark:border-gray-600
"
>
<router-link
@ -140,9 +143,9 @@
:key="index"
:to="`/${globalStore.companySlug}/customer/payments/${payment.id}/view`"
:class="[
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent',
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent dark:hover:bg-gray-700',
{
'bg-gray-100 border-l-4 border-primary-500 border-solid':
'bg-gray-100 border-l-4 border-primary-500 border-solid dark:bg-gray-700':
hasActiveUrl(payment.id),
},
]"
@ -158,6 +161,7 @@
leading-5
text-gray-500
capitalize
dark:text-gray-400
"
>
{{ payment.payment_number }}
@ -174,12 +178,13 @@
leading-8
text-right text-gray-900
block
dark:text-white
"
:amount="payment.amount"
:currency="payment.currency"
/>
<div class="text-sm text-right text-gray-500 non-italic">
<div class="text-sm text-right text-gray-500 dark:text-gray-400 non-italic">
{{ payment.formatted_payment_date }}
</div>
</div>
@ -187,7 +192,7 @@
<p
v-if="!paymentStore.payments.length"
class="flex justify-center px-4 mt-5 text-sm text-gray-600"
class="flex justify-center px-4 mt-5 text-sm text-gray-600 dark:text-gray-300"
>
{{ $t('payments.no_matching_payments') }}
</p>