mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-21 22:13:31 -07:00
Merge 2c57afd553
into 389f8b4279
This commit is contained in:
commit
ed44dfaa5c
2 changed files with 21 additions and 7 deletions
|
@ -1,18 +1,29 @@
|
||||||
import type { Composer } from "vue-i18n";
|
import type { Composer } from "vue-i18n";
|
||||||
import { useReadOnlyStore, useStore } from "../partials/use-store-factory";
|
import { useReadOnlyStore, useStore } from "../partials/use-store-factory";
|
||||||
import type { ReadCookBook } from "~/lib/api/types/cookbook";
|
import type { ReadCookBook, UpdateCookBook } from "~/lib/api/types/cookbook";
|
||||||
import { usePublicExploreApi, useUserApi } from "~/composables/api";
|
import { usePublicExploreApi, useUserApi } from "~/composables/api";
|
||||||
|
|
||||||
const store: Ref<ReadCookBook[]> = ref([]);
|
const cookbooks: Ref<ReadCookBook[]> = ref([]);
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const publicLoading = ref(false);
|
const publicLoading = ref(false);
|
||||||
|
|
||||||
export const useCookbookStore = function (i18n?: Composer) {
|
export const useCookbookStore = function (i18n?: Composer) {
|
||||||
const api = useUserApi(i18n);
|
const api = useUserApi(i18n);
|
||||||
return useStore<ReadCookBook>(store, loading, api.cookbooks);
|
const store = useStore<ReadCookBook>(cookbooks, loading, api.cookbooks);
|
||||||
|
|
||||||
|
const updateAll = async function (updateData: UpdateCookBook[]) {
|
||||||
|
loading.value = true;
|
||||||
|
updateData.forEach((cookbook, index) => {
|
||||||
|
cookbook.position = index;
|
||||||
|
});
|
||||||
|
const { data } = await api.cookbooks.updateAll(updateData);
|
||||||
|
loading.value = false;
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
return { ...store, updateAll };
|
||||||
};
|
};
|
||||||
|
|
||||||
export const usePublicCookbookStore = function (groupSlug: string, i18n?: Composer) {
|
export const usePublicCookbookStore = function (groupSlug: string, i18n?: Composer) {
|
||||||
const api = usePublicExploreApi(groupSlug, i18n).explore;
|
const api = usePublicExploreApi(groupSlug, i18n).explore;
|
||||||
return useReadOnlyStore<ReadCookBook>(store, publicLoading, api.cookbooks);
|
return useReadOnlyStore<ReadCookBook>(cookbooks, publicLoading, api.cookbooks);
|
||||||
};
|
};
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
:delay="250"
|
:delay="250"
|
||||||
:delay-on-touch-only="true"
|
:delay-on-touch-only="true"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@end="actions.updateOrder(myCookbooks)"
|
@end="updateAll(myCookbooks)"
|
||||||
>
|
>
|
||||||
<v-expansion-panel
|
<v-expansion-panel
|
||||||
v-for="(cookbook, index) in myCookbooks"
|
v-for="(cookbook, index) in myCookbooks"
|
||||||
|
@ -160,7 +160,7 @@ export default defineNuxtComponent({
|
||||||
});
|
});
|
||||||
|
|
||||||
const $auth = useMealieAuth();
|
const $auth = useMealieAuth();
|
||||||
const { store: allCookbooks, actions } = useCookbookStore();
|
const { store: allCookbooks, actions, updateAll } = useCookbookStore();
|
||||||
|
|
||||||
// Make a local reactive copy of myCookbooks
|
// Make a local reactive copy of myCookbooks
|
||||||
const myCookbooks = ref<ReadCookBook[]>([]);
|
const myCookbooks = ref<ReadCookBook[]>([]);
|
||||||
|
@ -170,7 +170,7 @@ export default defineNuxtComponent({
|
||||||
myCookbooks.value
|
myCookbooks.value
|
||||||
= cookbooks?.filter(
|
= cookbooks?.filter(
|
||||||
cookbook => cookbook.householdId === $auth.user.value?.householdId,
|
cookbook => cookbook.householdId === $auth.user.value?.householdId,
|
||||||
) ?? [];
|
).sort((a, b) => a.position > b.position) ?? [];
|
||||||
},
|
},
|
||||||
{ immediate: true },
|
{ immediate: true },
|
||||||
);
|
);
|
||||||
|
@ -249,6 +249,9 @@ export default defineNuxtComponent({
|
||||||
createTarget,
|
createTarget,
|
||||||
createCookbook,
|
createCookbook,
|
||||||
|
|
||||||
|
// update
|
||||||
|
updateAll,
|
||||||
|
|
||||||
// delete
|
// delete
|
||||||
deleteTarget,
|
deleteTarget,
|
||||||
deleteEventHandler,
|
deleteEventHandler,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue