11import { Button , Card , Text } from "@shopify/polaris" ;
22import { useMutation } from "@tanstack/react-query" ;
3+ import { setMetafield } from "app/loaders" ;
34import { useClientAdminApi } from "app/loaders/clientLoader" ;
4- import {
5- AppMetafieldsQuery ,
6- deleteMetafields ,
7- getPdpMetafields ,
8- MetafieldIdentifierInput ,
9- } from "app/utils/productMetafields" ;
5+ import { ONBOARD_STEP_META_FIELD } from "app/queries/onboarding" ;
6+ import { onboardingSteps } from "app/utils/onboarding" ;
107
118export const ResetSettings = ( ) => {
129 const adminApi = useClientAdminApi ( ) ;
@@ -16,69 +13,17 @@ export const ResetSettings = () => {
1613 console . error ( "Error clearing app metafields" , e ) ;
1714 } ,
1815 mutationFn : async ( ) => {
19- const products = await getPdpMetafields ( adminApi ) ;
20- const productsWithTrieveMetafields = products . filter (
21- ( p ) => p . metafields . nodes . length > 0 ,
22- ) ;
23- const metafieldsToDelete = productsWithTrieveMetafields . reduce (
24- ( acc , p ) => {
25- const productId = p . id ;
26- return acc . concat (
27- p . metafields . nodes . map ( ( m ) => ( {
28- key : m . key ,
29- ownerId : productId ,
30- namespace : m . namespace ,
31- } ) ) ,
32- ) ;
33- } ,
34- [ ] as MetafieldIdentifierInput [ ] ,
35- ) ;
36- if ( metafieldsToDelete . length !== 0 ) {
37- await deleteMetafields ( adminApi , metafieldsToDelete ) ;
38- } else {
39- console . log ( "No metafields to delete" ) ;
40- }
41-
42- const appInstallMetafields = await adminApi < AppMetafieldsQuery > (
43- `#graphql
44- {
45- appInstallation{
46- id
47- metafields (first: 250, namespace: "trieve"){
48- nodes {
49- key
50- value
51- }
52- }
53- }
54- }
55- ` ,
56- ) ;
57-
58- if ( appInstallMetafields . error ) {
59- throw new Error ( "Failed to get app metafields" , {
60- cause : appInstallMetafields . error ,
61- } ) ;
62- }
63-
64- const appMetafieldsToDelete =
65- appInstallMetafields . data . appInstallation . metafields . nodes . map ( ( m ) => ( {
66- key : m . key ,
67- ownerId : appInstallMetafields . data . appInstallation . id ,
68- namespace : "trieve" ,
69- } ) ) as MetafieldIdentifierInput [ ] ;
70-
71- await deleteMetafields ( adminApi , appMetafieldsToDelete ) ;
16+ setMetafield ( adminApi , ONBOARD_STEP_META_FIELD , onboardingSteps [ 0 ] . id ) ;
7217 } ,
7318 } ) ;
7419
7520 return (
7621 < Card >
7722 < Text variant = "headingLg" as = "h1" >
78- Reset Widgets and Onboarding
23+ Reset Onboarding
7924 </ Text >
8025 < Text variant = "bodyMd" as = "p" >
81- Clears all app metafields, onboarding data, and widget configuration .
26+ This will reset your onboarding progress so you can view the steps again .
8227 </ Text >
8328 < div className = "h-3" > </ div >
8429 < div className = "flex items-center gap-4" >
0 commit comments