diff --git a/src/api/issue.api.ts b/src/api/issue.api.ts
index 085070f..f05617f 100644
--- a/src/api/issue.api.ts
+++ b/src/api/issue.api.ts
@@ -51,11 +51,18 @@ export async function itemsList(params: {
page: number
limit: number
text?: string | null
+ status?: string | null
+ assigneeId?: string | null
projectId?: string | null
}) {
- // `text` (free-text search) has no backend support yet — kept in the
- // signature so callers don't need to change, but not sent over the wire.
- const query = toQuery({ page: params.page, limit: params.limit, projectId: params.projectId })
+ const query = toQuery({
+ page: params.page,
+ limit: params.limit,
+ projectId: params.projectId,
+ text: params.text,
+ assigneeId: params.assigneeId,
+ status: params.status,
+ })
return apiClient.get<{ list: Issue[]; meta: Meta }>(`/api/issues/list${query}`)
}
diff --git a/src/components/AssigneeFilter.vue b/src/components/AssigneeFilter.vue
index c620edc..2ee59a2 100644
--- a/src/components/AssigneeFilter.vue
+++ b/src/components/AssigneeFilter.vue
@@ -37,7 +37,10 @@ function toggle(id: string) {
function onMenuSelect(value: unknown) {
if (Array.isArray(value)) {
- emit('changed', value.filter((el): el is string => typeof el === 'string'))
+ emit(
+ 'changed',
+ value.filter((el): el is string => typeof el === 'string'),
+ )
}
}
@@ -142,7 +145,7 @@ onMounted(() => {
}
&:hover {
- transform: translateY(-0.25rem);
+ transform: translateY(0rem);
}
}
diff --git a/src/components/IssueFilter.vue b/src/components/IssueFilter.vue
index 0957e9d..c0c08bc 100644
--- a/src/components/IssueFilter.vue
+++ b/src/components/IssueFilter.vue
@@ -1,8 +1,14 @@
diff --git a/src/stores/issue.ts b/src/stores/issue.ts
index 37887c1..d39bf80 100644
--- a/src/stores/issue.ts
+++ b/src/stores/issue.ts
@@ -24,7 +24,14 @@ export const useIssueStore = defineStore('item', () => {
totalPages: 0,
})
- async function list(params: { page: number; limit: number; text?: string | null; projectId?: string | null }) {
+ async function list(params: {
+ page: number
+ limit: number
+ text?: string | null
+ status?: string | null
+ assigneeId?: string | null
+ projectId?: string | null
+ }) {
try {
const res = await itemsList(params)
issues.value = res.list
diff --git a/src/views/Issues/IssuesListView.vue b/src/views/Issues/IssuesListView.vue
index 2354864..49ce056 100644
--- a/src/views/Issues/IssuesListView.vue
+++ b/src/views/Issues/IssuesListView.vue
@@ -48,10 +48,6 @@ async function load() {
await fetch()
}
-// async function onSearch() {
-// await updatePage(1)
-// }
-
function syncQuery() {
const query: Record = { page: String(page.value) }
@@ -90,6 +86,12 @@ async function updatePage(val: number) {
await load()
}
+async function onTextChanged(value: string | null) {
+ text.value = value
+ page.value = 1
+ await load()
+}
+
function close() {
selected.value = []
}
@@ -151,7 +153,7 @@ async function onDeleteBatch() {