Skip to content

Instantly share code, notes, and snippets.

Avatar

Kyle KTruong008

View GitHub Profile
View gist:b29b989a441f6e7f7ba0da565d93962c
### Keybase proof
I hereby claim:
* I am ktruong008 on github.
* I am ktruong008 (https://keybase.io/ktruong008) on keybase.
* I have a public key ASBeEpy6J3FzgX4_0fd7reDtu_dvkE6rJLXqsjANCjdC1Ao
To claim this, I am signing this object:
@KTruong008
KTruong008 / date-utc.js
Created May 23, 2020
JS Date UTC methods
View date-utc.js
Date.getUTCDate()
Date.getUTCDay()
Date.getUTCHours()
Date.toUTCString()
@KTruong008
KTruong008 / date.js
Created May 23, 2020
default JS date methods
View date.js
Date.getDate()
Date.getDay()
Date.getHours()
Date.toString()
@KTruong008
KTruong008 / hasura-first-look-example.ts
Created May 23, 2020
A first look at hasura example
View hasura-first-look-example.ts
export const promotionsFetchEpic = (
action$: ActionsObservable<PayloadAction>,
state$: StateObservable<StoreState>,
): Observable<PayloadAction> =>
action$.pipe(
filter((action) => action.type === appDataFetchSuccess.toString()),
asyncRequest(
promotionsFetchStart.toString(),
promotionsFetchSuccess.toString(),
promotionsFetchError.toString(),
View script-tag-ex
// app.middleware.js
const buildScriptTagSrcUrl = (): string => {
return process.env.SCRIPT_TAG_URL || '';
};
export const initializeApp = async (ctx) => {
...
await createScriptTag(
buildScriptTagSrcUrl(),
View graphql-setup
// cross-sell.graphql.ts
export const crossSellQueryTypeDefinitions = `
crossSell(crossSellId: Int): CrossSell
productCrossSells(productId: String): [CrossSell!]
`;
export const crossSellTypeDefinitions = `
type CrossSell {
displaysProductPrice: Boolean
View graphql-request.ts
// shared.ts
export const graphqlRequest = async <T>(
query: string,
variables = {},
): Promise<T> => {
const headers = {
...buildContentTypeHeader('application/json'),
};
View gist:17097a1d57c3601744c6979830c401d8
import * as React from 'react';
import { Field, FormSection } from 'redux-form';
import IntlLink from '../../core/intl/intlLink/intlLink.container';
import { LOCATION } from '../../core/location/location.types';
import { IntlText } from '../../core/intl/intlText/intlText.container';
import { Input, Radio, Button, Icon, Text } from '../../components';
import { Address } from '../address/address.fieldset';
import { Name } from '../name/name.fieldset';
import {
View gist:09e7839fb22b2f0833a4512ce6d4549c
import { createSelector, createStructuredSelector } from 'reselect';
import { getFormValues } from 'redux-form';
import { AppStateT, LoginStateT, FORM_NAMES, LOCATION } from '../../core/types';
import { selectPreviousPageType, selectKind } from '../../core/location/location.selectors';
export const selectLogin = (state: AppStateT) => state.login;
export const selectAuthenticated = createSelector(
selectLogin,
(loginState: LoginStateT) => loginState.authenticated
@KTruong008
KTruong008 / .js
Created Nov 14, 2017
reselect example
View .js
import { path, find, propEq } from 'ramda';
import { createSelector } from 'reselect';
import {
AppStateT,
UserProfileT,
BusinessNameSearchesT,
BusinessNameSearchesSearchesT,
UserDetailsT,
PaymentOrderT,
BUSINESS_REGISTRATION_STATUS,