refactor: statusOptions code

This commit is contained in:
Shariq Ansari 2025-06-06 21:09:27 +05:30
parent c6e9d71e1f
commit 5e616f1a50
5 changed files with 13 additions and 58 deletions

View File

@ -23,15 +23,7 @@
/>
<Dropdown
v-if="document.doc"
:options="
statusOptions(
'deal',
updateStatus,
document.statuses?.length
? document.statuses
: deal.data._customStatuses,
)
"
:options="statusOptions('deal', document, deal.data._customStatuses)"
>
<template #default="{ open }">
<Button :label="document.doc.status">
@ -741,9 +733,4 @@ function reloadAssignees(data) {
assignees.reload()
}
}
function updateStatus(value) {
document.doc.status = value
document.save.submit()
}
</script>

View File

@ -23,15 +23,7 @@
/>
<Dropdown
v-if="document.doc"
:options="
statusOptions(
'lead',
updateStatus,
document.statuses?.length
? document.statuses
: lead.data._customStatuses,
)
"
:options="statusOptions('lead', document, lead.data._customStatuses)"
>
<template #default="{ open }">
<Button :label="document.doc.status">
@ -731,9 +723,4 @@ function reloadAssignees(data) {
assignees.reload()
}
}
function updateStatus(value) {
document.doc.status = value
document.save.submit()
}
</script>

View File

@ -11,15 +11,7 @@
<div class="absolute right-0">
<Dropdown
v-if="document.doc"
:options="
statusOptions(
'deal',
updateStatus,
document.statuses?.length
? document.statuses
: deal.data._customStatuses,
)
"
:options="statusOptions('deal', document, deal.data._customStatuses)"
>
<template #default="{ open }">
<Button :label="document.doc.status">
@ -627,9 +619,4 @@ function reloadAssignees(data) {
assignees.reload()
}
}
function updateStatus(value) {
document.doc.status = value
document.save.submit()
}
</script>

View File

@ -11,15 +11,7 @@
<div class="absolute right-0">
<Dropdown
v-if="document.doc"
:options="
statusOptions(
'lead',
updateStatus,
document.statuses?.length
? document.statuses
: lead.data._customStatuses,
)
"
:options="statusOptions('lead', document, lead.data._customStatuses)"
>
<template #default="{ open }">
<Button :label="document.doc.status">
@ -476,9 +468,4 @@ function reloadAssignees(data) {
assignees.reload()
}
}
function updateStatus(value) {
document.doc.status = value
document.save.submit()
}
</script>

View File

@ -77,10 +77,14 @@ export const statusesStore = defineStore('crm-statuses', () => {
return communicationStatuses[name]
}
function statusOptions(doctype, action, statuses = []) {
function statusOptions(doctype, document, statuses = []) {
let statusesByName =
doctype == 'deal' ? dealStatusesByName : leadStatusesByName
if (document?.statuses?.length) {
statuses = document.statuses
}
if (statuses.length) {
statusesByName = statuses.reduce((acc, status) => {
acc[status] = statusesByName[status]
@ -96,7 +100,10 @@ export const statusesStore = defineStore('crm-statuses', () => {
icon: () => h(IndicatorIcon, { class: statusesByName[status]?.color }),
onClick: () => {
capture('status_changed', { doctype, status })
action && action(statusesByName[status]?.name)
if (document) {
document.doc.status = statusesByName[status]?.name
document.save.submit()
}
},
})
}