Skip to content

Instantly share code, notes, and snippets.

View hendrikswan's full-sized avatar

hendrik swanepoel hendrikswan

View GitHub Profile
@hendrikswan
hendrikswan / main.dart
Created November 29, 2022 17:26
solar-cliff-5547
import 'package:flutter/material.dart';
const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
@hendrikswan
hendrikswan / main.dart
Created November 29, 2022 17:23
keen-cliff-3427
import 'package:flutter/material.dart';
const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
@hendrikswan
hendrikswan / positionIndexedItem.ts
Created January 10, 2021 10:46
TS implementation of reordering items with index properties
/**
* Move item in array.
* NOTE: 2 splice operations will occur.
* First splice will briefly remove item array, second splice re-insert it into desired location.
* @see https://jsperf.com/array-prototype-move
*/
function moveItemInArray(
array: any[],
moveIndex: number,
toIndex: number
const handleDrawingEvent = line => ({
line,
type: 'LINE_DRAWN'
})
const drawingSyncSuccess = () => ({
type: 'DRAWING_SYNC_SUCCESS',
})
const drawingSyncFailure = () => ({
function loadDataEpic(action$) {
return action$
.ofType('LOAD_DATA')
.switchMap(({ url }) =>
fetch(url)
.then(response => response.ok ? response.json() : requestFailedAction())
.then(result => result.type === 'REQUEST_FAILED' ? result : requestSuccessAction(result))
.catch(() => requestFailedAction())
)
}
function (action$: Observable<Action>, store: Store): Observable<Action>;
const handleDrawingEvent = line => ({
line,
type: 'LINE_DRAWN'
})
const drawingSyncSuccess = () => ({
type: 'DRAWING_SYNC_SUCCESS',
})
const drawingSyncFailure = () => ({
const handleDrawingEvent = line => ({
line,
type: 'LINE_DRAWN'
})
const defaultState = { lines: [] };
const reducer = (state = defaultState, action) => {
switch (action.type) {
case 'LINE_DRAWN':
function handleDrawingEvent(line) {
return (dispatch, getState) => {
console.log(`From (${line.from.x},${line.from.y}) to (${line.to.x},${line.to.y})`);
}
}
@hendrikswan
hendrikswan / loadData.js
Last active May 7, 2019 16:54
A redux thunk middleware example
function loadData() {
return (dispatch) => {
fetch('/a/fake/url')
.then(response => {
if (!response.ok) {
// dispatching a downstream action
return dispatch(requestFailedAction());
}
return response.json();
})