TaskActions.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import type { GrowthTaskItem } from "@/api/light/TreeApi";
  2. import { injectAppConfiguration } from "@/api/system/useAppConfiguration";
  3. import { backAndCallOnPageBack, callPrevOnPageBack, navTo } from "@/components/utils/PageAction";
  4. export function useTaskActions(getVillageId: () => number, topLevelPage = false) {
  5. const appConfiguration = injectAppConfiguration();
  6. function handleDoTask(item: GrowthTaskItem) {
  7. switch (item.taskType) {
  8. case 'collect':
  9. case 'post':
  10. case 'tree':
  11. if (topLevelPage) {
  12. callPrevOnPageBack('goVillage', {
  13. id: getVillageId(),
  14. taskType: item.taskType,
  15. }, -1)
  16. } else {
  17. backAndCallOnPageBack('goVillage', {
  18. id: getVillageId(),
  19. taskType: item.taskType,
  20. });
  21. }
  22. break;
  23. default:
  24. switch (item.taskKey) {
  25. case 'share_app':
  26. uni.setStorageSync('ShareAppTempEntranceContent', {
  27. content: appConfiguration.value.ShareAppTempEntranceContent.content || '',
  28. images: appConfiguration.value.ShareAppTempEntranceContent.images || [],
  29. title: appConfiguration.value.ShareAppTempEntranceContent.title || '',
  30. });
  31. navTo('/pages/home/chat/dependent/post/publish', {
  32. entranceContent: 'ShareAppTempEntranceContent',
  33. disableAiPops: true,
  34. });
  35. break;
  36. }
  37. break;
  38. }
  39. }
  40. return {
  41. handleDoTask,
  42. }
  43. }