+
-import { PencilSquareIcon, TrashIcon } from '@heroicons/vue/20/solid';
+import {
+ ArchiveBoxIcon,
+ PencilSquareIcon,
+ TrashIcon,
+} from '@heroicons/vue/20/solid';
import type { Client } from '@/packages/api/src';
import { canDeleteClients, canUpdateClients } from '@/utils/permissions';
import MoreOptionsDropdown from '@/packages/ui/src/MoreOptionsDropdown.vue';
@@ -7,6 +11,7 @@ import MoreOptionsDropdown from '@/packages/ui/src/MoreOptionsDropdown.vue';
const emit = defineEmits<{
delete: [];
edit: [];
+ archive: [];
}>();
const props = defineProps<{
client: Client;
@@ -26,6 +31,14 @@ const props = defineProps<{
class="w-5 text-icon-active">
Edit
+
diff --git a/resources/js/Pages/Clients.vue b/resources/js/Pages/Clients.vue
index be964199..18de49d9 100644
--- a/resources/js/Pages/Clients.vue
+++ b/resources/js/Pages/Clients.vue
@@ -1,27 +1,62 @@
+
+
+
+ Active
+
+ Archived
+
+
+
@@ -33,6 +68,6 @@ const createClient = ref(false);
>
-
+
diff --git a/resources/js/packages/ui/src/Project/ProjectCreateModal.vue b/resources/js/packages/ui/src/Project/ProjectCreateModal.vue
index 88197f13..f418c94e 100644
--- a/resources/js/packages/ui/src/Project/ProjectCreateModal.vue
+++ b/resources/js/packages/ui/src/Project/ProjectCreateModal.vue
@@ -29,6 +29,10 @@ const props = defineProps<{
currency: string;
}>();
+const activeClients = computed(() => {
+ return props.clients.filter((client) => !client.is_archived);
+});
+
const project = ref
({
name: '',
color: getRandomColor(),
@@ -100,7 +104,7 @@ const currentClientName = computed(() => {
diff --git a/resources/js/utils/useClients.ts b/resources/js/utils/useClients.ts
index 48664632..f5566895 100644
--- a/resources/js/utils/useClients.ts
+++ b/resources/js/utils/useClients.ts
@@ -20,6 +20,9 @@ export const useClientsStore = defineStore('clients', () => {
clientResponse.value = await handleApiRequestNotifications(
() =>
api.getClients({
+ queries: {
+ archived: 'all',
+ },
params: {
organization: organization,
},