IKHSAN
ENID Baca dalam Bahasa Indonesia

opendesk

Public
Branch
main
Latest commit
08d9f3328 October 2026

SavedReplies.vue

Open raw
<template>
  <SavedRepliesList v-if="savedRepliesActiveScreen.screen == 'list'" />
  <SavedReplyView v-else-if="savedRepliesActiveScreen.screen == 'view'" />
</template>

<script setup lang="ts">
import { createListResource } from "frappe-ui";
import SavedRepliesList from "./SavedRepliesList.vue";
import SavedReplyView from "./SavedReplyView.vue";
import { onUnmounted, provide, ref } from "vue";
import { SavedReplyListResourceSymbol } from "../../../types";
import { activeFilter } from "./savedReplies";

const savedRepliesActiveScreen = ref({
  screen: "list",
  data: null,
});
const savedRepliesSearchQuery = ref("");

const savedReplyListResource = createListResource({
  doctype: "OD Saved Reply",
  fields: ["name", "title", "owner", "scope"],
  filters: {
    scope: activeFilter.value == "All" ? undefined : ["=", activeFilter.value],
  },
  cache: ["SavedReplyList"],
  auto: true,
  orderBy: "modified desc",
  start: 0,
  pageLength: 999,
});

provide(SavedReplyListResourceSymbol, savedReplyListResource);
provide("savedRepliesActiveScreen", savedRepliesActiveScreen);
provide("savedRepliesSearchQuery", savedRepliesSearchQuery);

onUnmounted(() => {
  savedRepliesSearchQuery.value = "";
  savedReplyListResource.filters = {
    scope: activeFilter.value == "All" ? undefined : ["=", activeFilter.value],
  };
});
</script>
bytes
1,342
lines
44
Type
vue
Latest commit
28 October 2026