Skip to content

Instantly share code, notes, and snippets.

View MosesEsan's full-sized avatar

Moses Esan MosesEsan

View GitHub Profile
@MosesEsan
MosesEsan / App.js
Created April 8, 2021 17:30
Trade Journal App Index (App.js)
import 'react-native-gesture-handler';
import React from 'react';
import {createServer} from "miragejs"
import AsyncStorage from '@react-native-async-storage/async-storage';
import Router from './app/router';
const STORAGE_KEY = "@trades";
@MosesEsan
MosesEsan / router.js
Created April 8, 2021 17:23
Trade Journal App Router
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
import HomeScreen from './scenes/Home';
import AddEditScreen from './scenes/AddEdit';
import HomeProvider from "./provider";
const Stack = createStackNavigator();
@MosesEsan
MosesEsan / Home.js
Created April 8, 2021 17:20
Trade Journal App Home Scene
import React, {useEffect, useState} from 'react';
import {FlatList, Text, StyleSheet, TouchableHighlight} from 'react-native';
import {Empty, Placeholder, OverlayContainer} from 'mesan-react-native-components'
import {showSuccessAlert, showErrorAlert} from 'mesan-react-native-components/utils'
import TradeItem from "../components/TradeItem";
import {useHome} from "../provider.js";
import {getTrades, deleteTrade} from "../service";
@MosesEsan
MosesEsan / AddEdit.js
Created April 8, 2021 17:16
Trade Journal App AddEdit Scene
import React, {useEffect, useMemo, useState, useContext} from 'react';
import {Button, View} from "react-native";
import Form, {TYPES} from 'react-native-basic-form';
import {Header} from 'react-native-elements';
import {showErrorAlert, showSuccessAlert} from 'mesan-react-native-components/utils'
import {useHome} from "../provider";
import {createUpdateTrade} from "../service";
@MosesEsan
MosesEsan / SwipeableRow.js
Created April 8, 2021 17:15
Trade Journal App Components
import React , {useRef} from 'react';
import { Animated, StyleSheet, View, Alert } from 'react-native';
import { RectButton } from 'react-native-gesture-handler';
import Swipeable from 'react-native-gesture-handler/Swipeable';
import {Icon} from 'react-native-elements';
const AnimatedIcon = Animated.createAnimatedComponent(Icon);
export default function SwipeableRow ({children, onEdit, onDelete}) {
@MosesEsan
MosesEsan / service.js
Last active April 8, 2021 16:49
Trade Journal App Service
import axios from 'axios';
//API End Point
export const TRADE = `/api/trade`;
//INDEX
export async function getTrades(){
try{
let res = await axios.get(`${TRADE}`);
@MosesEsan
MosesEsan / reducer.js
Last active April 8, 2021 16:50
Trade Journal App Reducer
//ACTION TYPES
export const FETCH_REQUEST = 'FETCH_REQUEST';
export const CRUD_REQUEST = 'CRUD_REQUEST';
//FETCH REQUEST STATES
export const FETCH_STATE = {
INITIAL: 'INITIAL',
REFRESH: 'REFRESH',
ERROR: 'ERROR',
SUCCESS: 'SUCCESS'
@MosesEsan
MosesEsan / provider.js
Last active April 8, 2021 16:50
Trade Journal App Provider File
import React, {useMemo, useContext, useReducer, createContext} from 'react';
//IMPORT REDUCER, INITIAL STATE AND ACTION TYPES
import crudReducer, {CRUD_REQUEST, CRUD_STATE, FETCH_REQUEST, FETCH_STATE, initialState} from "./reducer"
// CONTEXT ===================================
const HomeContext = createContext();
function HomeProvider(props) {
const [state, dispatch] = useReducer(crudReducer, initialState || {});
@MosesEsan
MosesEsan / profile_scene.js
Last active April 28, 2020 01:04
Event App Profile Section Scenes 2
import React, {useCallback, useEffect, useMemo, useState} from 'react';
import {FlatList, View, StyleSheet} from 'react-native';
import {getEvents} from "../../services/event";
import {useAuth} from "../../providers/auth";
import {useProfile} from "../../providers/profile";
import EventItem from "../../components/EventItem";
import UserPanel from "../../components/UserPanel";
import {Empty, FilterView, Footer, Placeholder, Header} from 'mesan-react-native-components'
@MosesEsan
MosesEsan / event_app_router.js
Last active May 17, 2020 15:21
Event App Router
import React from 'react';
import {createAppContainer, createSwitchNavigator} from 'react-navigation';
import {createBottomTabNavigator} from 'react-navigation-tabs';
import {createStackNavigator} from 'react-navigation-stack';
import {Icon} from 'react-native-elements';
//IMPORT ROUTES AND PROVIDER
import AuthLoading from "../app/scenes/auth/AuthLoading";
import AuthProvider from "../app/providers/auth";