schon/storefront/src/composables/search/useSearch.js

40 lines
No EOL
855 B
JavaScript

import { ref } from 'vue';
import { request } from 'graphql-request';
import { SEARCH } from "@/graphql/mutations/search.js";
import {APP_API_DOMAIN} from "@/config/index.js";
export function useSearch() {
const searchResults = ref(null);
const loading = ref(false);
const error = ref(null);
const search = async (query) => {
loading.value = true;
error.value = null;
try {
const variables = { query };
const data = await request(
APP_API_DOMAIN,
SEARCH,
variables
);
searchResults.value = data.search.results;
return data.search.results;
} catch (err) {
error.value = err;
console.error('useSearch error:', err);
return null;
} finally {
loading.value = false;
}
};
return {
searchResults,
loading,
error,
search
};
}