View MyGenericComponent.tsx
/** Generic component */ | |
type MyComponentProps<T> = { data: T[] } | |
class MyComponent<T> extends React.Component<MyComponentProps<T>, any> { } | |
/** Usage */ | |
<MyComponent<number> data={[12, 15, 18]} /> | |
<MyComponent<string> data={["one", "two", "three"]} /> |
View xmlToJson.js
// Changes XML to JSON | |
// Modified version from here: http://davidwalsh.name/convert-xml-json | |
xmlToJson(xml) { | |
// Create the return object | |
let obj = {}; | |
if (xml.nodeType === 1) { // element | |
// do attributes | |
if (xml.attributes.length > 0) { | |
obj['@attributes'] = {}; |
View update-url-query-string-history.js
// Explicitly save/update a url parameter using HTML5's replaceState(). | |
function updateQueryStringParam(key, value) { | |
const baseUrl = [location.protocol, '//', location.host, location.pathname].join(''); | |
const urlQueryString = document.location.search; | |
let newParam = key + '=' + value; | |
let params = '?' + newParam; | |
// If the "search" string exists, then build params from it | |
if (urlQueryString) { | |
const keyRegex = new RegExp('([\?&])' + key + '[^&]*'); |