Skip to content

Instantly share code, notes, and snippets.

View srph's full-sized avatar
🛠️
Building @Stride-Labs Frontend

Kier Borromeo srph

🛠️
Building @Stride-Labs Frontend
View GitHub Profile
@srph
srph / index.js
Last active February 28, 2018 04:43
JS: Declarative FormData
/**
* Declarative FormData
*
* @usage formdata({ username: '' });
* @param {object} obj
* @return FormData
*/
export default function formdata(obj) {
const form = new FormData();
const flattened = flattenKeys(obj)
@srph
srph / index.json
Last active May 24, 2017 12:09
Survey Data Structure
{
"data": [{
"type": "range",
"question": "What can you rate X?"
}, {
"type": "multiple_answer",
"question": "Which do you think is cool?",
"choices": [{
"id": 1,
"text": "Pogi"
@srph
srph / index.js
Created May 23, 2017 23:35
Full Story: User identification with React+REdux
import React, { Component } from 'react';
import {connect} from 'react-redux';
/**
* Initializes fullstory
*/
class FullStory extends Component {
componentDidMount() {
if (this.props.authenticated) {
this.identify();
@srph
srph / index.js
Last active May 3, 2017 08:23
JS: Exclude null values from resolved value
function resolve(promise) {
return Promise.resolve(promise)
.then(res => {
return res
? res
: Promise.reject();
})
}
@srph
srph / readme.md
Last active May 8, 2017 08:21
toastah: a simple android-like toast with jQuery

toastah

a simple android-like toast with jQuery

installing

<!-- Import it after your stylesheets -->
<link rel="stylesheet" href="toastah.css">

<script src="jquery.js"></script>
@srph
srph / AppServiecProvider.php
Last active May 8, 2017 07:29
Laravel: Validation for conflicting schedule
<?php
namespace App\Providers;
use App\Schedule;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Validator;
class AppServiceProvider extends ServiceProvider
{
@srph
srph / index.js
Last active April 28, 2017 05:20
jQuery: Add sorting to a column
+(function($) {
$('[data-jort]').on('click', function() {
var el = $(this)
var key = el.data('jort')
var q = new URLSearchParams(window.location.search)
var sort = q.get('sort')
var descending = `-${key}`
if (!sort || (sort !== key && sort !== descending)) {
q.set('sort', key)
@srph
srph / index.js
Last active May 3, 2017 10:21
jQuery: Delete confirmation message
+(function($, undefined) {
// <form data-verilete="user" data-verilete-name=
// Verilete = Verify delete
$('[data-verilete]').on('submit', function(e) {
var el = $(this)
var resource = el.data('verilete') || 'resource';
var name = el.data('verilete-name')
if (!confirmation({ resource: resource, name: name }) ) {
e.preventDefault()
@srph
srph / script.js
Created April 14, 2017 11:03
Workaround for iPhone
+(function() {
var uagent = navigator.userAgent.toLowerCase()
if (uagent.search("iphone") !== -1) {
document.body.classList.add('-is-iphone')
}
})()
import React from 'react';
import Template from './template';
class Typeahead extends React.Component {
render() {
return Template(/* props */);
// or return <Template {/* props */} />
}
}