Skip to content

Instantly share code, notes, and snippets.

View musti-91's full-sized avatar
:electron:
Impossible waits for you to change it to possible.

Mustafa Alroomi musti-91

:electron:
Impossible waits for you to change it to possible.
View GitHub Profile
import React from "react";
import { connect } from "react-redux";
import { fetchingTodos } from "store/features/todos";
interface Props {
data: ITodoState;
fetchingTodos: () => void;
}
...
extraReducers: builder=> {
builder.addCase(fetchingTodos.fulfilled, (state, {payload}) => {
// you could do something with payload data before add it to store.
})
builder.addCase(fetchingTodos.rejected, (state, {payload}) => {
// you could do something with payload data before add it to store.
})
}
import { createSlice } from '@reduxjs/toolkit'
import { fetchingTodos } from './todos-actions'
const { actions, reducer } = createSlice({
initialState,
name: "todos",
reducers: {
fetchingStart: (state) => ({ ...state, fetching: true }), //<< THIS IS REDUNDANT
},
import { createAsyncThunk } from '@reduxjs/toolkit'
import IState, { ITodo, AppDispatch } from './types'; //<<--------ADDED
/**
* fetching all todos
*
*/
export const fetchingTodos = createAsyncThunk(
'todos/fetchingTodos',
async() => {
const res = await fetch('https://jsonplaceholder.typicode.com/todos');
import { createSlice, createAsyncThunk } from "@reduxjs/toolkit";
import IStore, { ITodoState } from './types'
const initialState: ITodoState = {
fetching: false,
todos: [],
error: null,
};
import { combineReducers } from "@reduxjs/toolkit";
import todosReducer from "./todos";
export default combineReducers({
todos: todosReducer,
});
@musti-91
musti-91 / store.tsx
Created August 16, 2020 17:56
Thunk with redux toolkit#2
import { configureStore, getDefaultMiddleware } from "@reduxjs/toolkit";
import { createLogger } from "redux-logger";
import rootReducer from "./features";
const store = configureStore({
reducer: rootReducer,
devTools: true,
middleware: getDefaultMiddleware().concat([createLogger()]),
});
@musti-91
musti-91 / main.dart
Last active July 8, 2020 14:28
Reactive Programming: RxDart helper functions
void main() async {
//listen();
//mapResults();
// handleError();
}
Stream<int> get() async* {
for (var i = 1; i <= 4; i++) {
yield i;
yield i;
import React, { FC, useState, ChangeEvent, FormEvent } from 'react'
type E = ChangeEvent<HTMLInputElement> | FormEvent<HTMLInputElement>
interface iOwnProps {}
const NameFields: FC<iOwnProps> = props => {
const name = useInputField('')
const firstName = useInputField('')
return (
import React, {createContext, useContext } from 'react'
const NumberContext = createContext()
function NumberProvider(props){
const [number, setNumber]= useState(0)
return (
<NumberContext.Provider value={number}>
<NumberContent />