Skip to content

Instantly share code, notes, and snippets.

View JasonMore's full-sized avatar

Jason More JasonMore

  • GitHub Staff
  • Minneapolis, MN
  • 04:02 (UTC -06:00)
View GitHub Profile
@JasonMore
JasonMore / carSelectors.js
Created August 13, 2021 20:50
carSelectors.js
export const getCars = (state) => state.car.cars;
export const getCarById = (carId) => (state) => getCars(state)[carId];
@JasonMore
JasonMore / carActions.js
Created August 13, 2021 19:55
carActions.js
export const carClicked = (carId) => (dispatch, getState) => {
const state = getState();
const canToggle = getCanToggle(state);
if (!canToggle) return;
const car = getCarById(carId)(state);
dispatch(selectCar(car.id, !car.selected));
};
@JasonMore
JasonMore / carActions.js
Last active October 6, 2021 02:02
carActions.js
export const loadCars = () => async (dispatch, getState) => {
const state = getState();
// check if already loaded cars
if (getCars(state).length > 0) return;
// simulate ajax load
const data = await new Promise((resolve) =>
setTimeout(() => resolve(carData), 500)
);
@JasonMore
JasonMore / file structure
Last active July 23, 2021 20:01
file structure
src
├── App.js
├── components
│ ├── Car.js
│ └── Options.js
├── containers
│ └── CarsPageContainer.js
├── index.js
└── store
├── actions
@JasonMore
JasonMore / Car.jsx
Created May 28, 2021 13:32
Original Implementation
import React from "react";
const Car = ({ car, canToggle, selectCar }) => {
const onCarClicked = () => {
if (!canToggle) return;
selectCar(car.id, !car.selected);
};
return (
<div className="card m-1" style={{ width: "18rem" }}>
<input type="text" autocomplete="off"
class="form-control"
id="txtUsername"
name="txtUsername"
placeholder="Username"
[(ngModel)]="credentialModel.userName"
#formUsername="ngModel"
required
lhiNonEmail
lhiWebUserIdAvailable
@JasonMore
JasonMore / something.html
Created July 18, 2018 15:27
template form validation
<form class="form admin-form" #accountForm="ngForm" *ngIf="user">
<div class="row">
<div class="col-sm-5 text-right-form">First Name</div>
<div class="col-sm-7 col-md-4">
<input class="form-control" type="text" name="FirstName" [(ngModel)]="user.FirstName" [disabled]="user.$saving" />
</div>
</div>
<div class="row">
<div class="col-sm-5 text-right-form">Last Name</div>
<div class="col-sm-7 col-md-4">
const INITIAL_STATE = {
count: 0
}
// Action
const increaseAction = { type: 'increase' }
// Reducer
function counter(state, action) {
const count = state.count
@JasonMore
JasonMore / CampaignRedux.js
Created July 11, 2017 18:52
jason's reducer
import Immutable from 'seamless-immutable'
import _ from 'lodash'
import { makeReducer } from './index'
export const INITIAL_STATE = Immutable({
campaigns: {},
activeCampaignId: null
})
export const reducer = {}
@JasonMore
JasonMore / login.html
Created March 3, 2015 18:25
sails passport login
<!DOCTYPE html>
<html ng-app="minos-public">
<head>
<title>Minos Disposition Engine </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/assets/vendor/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="/assets/vendor/bootswatch/yeti/bootstrap.css"/>
<link rel="stylesheet" href="/assets/styles/style.css"/>