UNPKG

create-aelf-dapp

Version:

Create aelf Dapp based on Next.js with one command

46 lines (38 loc) 1.26 kB
import { createSlice } from '@reduxjs/toolkit'; import type { PayloadAction } from '@reduxjs/toolkit'; import type { RootState } from '@/app/lib/reduxToolkit/store'; // Define a type for the slice state interface CounterState { value: number; } // Define the initial state using that type const initialState: CounterState = { value: 0, }; export const counterSlice = createSlice({ name: 'counter', // `createSlice` will infer the state type from the `initialState` argument initialState, reducers: { increment: (state) => { state.value += 1; }, decrement: (state) => { state.value -= 1; }, // Use the PayloadAction type to declare the contents of `action.payload` incrementByAmount: (state, action: PayloadAction<number>) => { state.value += action.payload; }, }, }); export const { increment, decrement, incrementByAmount } = counterSlice.actions; // TODO: fix any export const incrementAsync = (amount: number) => (dispatch: any) => { setTimeout(() => { dispatch(incrementByAmount(amount)); }, 1000); }; // Other code such as selectors can use the imported `RootState` type export const selectCount = (state: RootState) => state.counter.value; export default counterSlice.reducer;