diff --git a/src/composables/useTaskList.ts b/src/composables/useTaskList.ts index 334bea0cc..ba1f869c4 100644 --- a/src/composables/useTaskList.ts +++ b/src/composables/useTaskList.ts @@ -5,6 +5,22 @@ import TaskCollectionService from '@/services/taskCollection' import type {ITask} from '@/modelTypes/ITask' import {error} from '@/message' +export type Order = 'asc' | 'desc' | 'none' + +export interface SortBy { + id?: Order + index?: Order + done?: Order + title?: Order + priority?: Order + due_date?: Order + start_date?: Order + end_date?: Order + percent_done?: Order + created?: Order + updated?: Order +} + // FIXME: merge with DEFAULT_PARAMS in filters.vue export const getDefaultParams = () => ({ sort_by: ['position', 'id'], @@ -15,7 +31,7 @@ export const getDefaultParams = () => ({ filter_concat: 'and', }) -const SORT_BY_DEFAULT = { +const SORT_BY_DEFAULT: SortBy = { id: 'desc', } @@ -44,7 +60,7 @@ const SORT_BY_DEFAULT = { /** * This mixin provides a base set of methods and properties to get tasks on a list. */ -export function useTaskList(listId, sortByDefault = SORT_BY_DEFAULT) { +export function useTaskList(listId, sortByDefault: SortBy = SORT_BY_DEFAULT) { const params = ref({...getDefaultParams()}) const search = ref('') diff --git a/src/views/list/ListTable.vue b/src/views/list/ListTable.vue index 5d6fd18e3..42853b2df 100644 --- a/src/views/list/ListTable.vue +++ b/src/views/list/ListTable.vue @@ -196,7 +196,7 @@ import FilterPopup from '@/components/list/partials/filter-popup.vue' import Pagination from '@/components/misc/pagination.vue' import Popup from '@/components/misc/popup.vue' -import {useTaskList} from '@/composables/useTaskList' +import {useTaskList, SortBy} from '@/composables/useTaskList' import type {ITask} from '@/modelTypes/ITask' const ACTIVE_COLUMNS_DEFAULT = { @@ -222,21 +222,6 @@ const props = defineProps({ }, }) -type Order = 'asc' | 'desc' | 'none' - -interface SortBy { - index: Order - done?: Order - title?: Order - priority?: Order - due_date?: Order - start_date?: Order - end_date?: Order - percent_done?: Order - created?: Order - updated?: Order -} - const SORT_BY_DEFAULT: SortBy = { index: 'desc', } @@ -244,7 +229,7 @@ const SORT_BY_DEFAULT: SortBy = { const activeColumns = useStorage('tableViewColumns', {...ACTIVE_COLUMNS_DEFAULT}) const sortBy = useStorage('tableViewSortBy', {...SORT_BY_DEFAULT}) -const taskList = useTaskList(toRef(props, 'listId')) +const taskList = useTaskList(toRef(props, 'listId'), sortBy.value) const { loading,