// Available variables: // - Machine // - interpret // - assign // - send // - sendParent // - spawn // - raise // - actions // - XState (all XState exports) const searchMachine = Machine({ id: "seach", initial: "idle", context: { results: undefined, query: undefined, lastSearchedQuery: undefined }, states: { idle: { on: { SEARCH: { target: "searching", actions: assign({ query: (ctx, event) => event.query, }), }, }, }, searching: { invoke: { id: "fetchSearch", src: () => {}, onDone: { target: "completed", actions: assign({ results: (ctx, event) => event.data, lastSearchedQuery: (ctx) => ctx.query, }), }, onError: "failed", }, }, completed: {}, failed: {}, }, });