11import { PayloadAction , createSlice } from '@reduxjs/toolkit' ;
22import z from 'zod' ;
33
4- import { createWebsocketResponseSchema , makeWebSocketMeta } from '../websocketActions' ;
4+ import {
5+ createWebsocketResponse ,
6+ createWebsocketResponseSchema ,
7+ makeWebSocketMeta ,
8+ } from '../websocketActions' ;
59
610type State = {
711 connected : boolean ;
@@ -17,10 +21,12 @@ const websocketConnectedPayloadSchema = z.object({
1721} ) ;
1822type websocketConnectedPayload = z . infer < typeof websocketConnectedPayloadSchema > ;
1923
20- const websocketErrorPayloadSchema = z . object ( {
21- error : z . string ( ) ,
22- } ) ;
23- type websocketErrorPayload = z . infer < typeof websocketErrorPayloadSchema > ;
24+ const { action : websocketError , schema : websocketErrorSchema } = createWebsocketResponse (
25+ 'websocket/error' ,
26+ z . object ( {
27+ error : z . string ( ) ,
28+ } ) ,
29+ ) ;
2430
2531const slice = createSlice ( {
2632 name : 'websocket' ,
@@ -44,26 +50,28 @@ const slice = createSlice({
4450 state . connected = false ;
4551 } ,
4652
47- error : ( state , action : PayloadAction < websocketErrorPayload > ) => {
48- state . error = action . payload . error ;
53+ clientError : ( state , action : PayloadAction < string > ) => {
54+ state . error = action . payload ;
4955 } ,
5056 } ,
57+ extraReducers : ( builder ) => {
58+ builder . addCase ( websocketError , ( state , action ) => {
59+ state . error = action . payload . error ;
60+ } ) ;
61+ } ,
5162} ) ;
5263
5364export const {
5465 connected : websocketConnected ,
5566 disconnected : websocketDisconnected ,
56- error : websocketError ,
67+ clientError : websocketClientError ,
5768} = slice . actions ;
5869
70+ export { websocketError , websocketErrorSchema } ;
71+
5972export const websocketConnectedSchema = createWebsocketResponseSchema (
6073 websocketConnected ,
6174 websocketConnectedPayloadSchema ,
6275) ;
6376
64- export const websocketErrorSchema = createWebsocketResponseSchema (
65- websocketError ,
66- websocketErrorPayloadSchema ,
67- ) ;
68-
6977export default slice . reducer ;
0 commit comments