Skip to content

Instantly share code, notes, and snippets.

@danielberndt
danielberndt / useLocalStorageState.js
Last active August 19, 2021 10:57
useLocalStorageState
import {useEffect, useMemo, useRef, useState} from "react";
const getStorageMap = (storageGetter) => {
let storage;
try {
storage = storageGetter();
} catch {
return {
storageGet() {
return null;
let subdomain = SUBDOMAIN;
let segmentQuery = {
$and: [
{ startedAt: { op: "gte", value: "2020-11-03T23:00:00.000Z" } },
{ startedAt: { op: "lt", value: "2020-12-01T23:00:00.000Z" } },
],
user: { name: ["daniel","tom","Alex"] },
};
@danielberndt
danielberndt / Group.ts
Last active September 18, 2022 20:09
React Suspense Abstraction for PouchDb (or other async ressources)
import {Nominal} from "../types";
import PouchDB from "pouchdb-browser";
import LRU from "lru-cache";
export type GroupId = Nominal<string, "GroupId">;
export type GroupOverviewEntry = {
name: string;
createdAt: Date;
};
@danielberndt
danielberndt / snippet-to-be-pasted-into-browser.js
Last active September 22, 2022 12:01
Codeck.io-Api: get info about card by it's three letter id
let subdomain = YOUR_SUBDOMAIN;
let CARD_ID='123'
// turns the string representation of a card id into a number.
// `111` will become 1, `15z` will become 140
let convertIdToNumber = (seq) => {
let startVal = 28 * 29 - 1;
let implicitZero= true;
let letters = "123456789acefghijkoqrsuvwxyz";
let length = letters.length;
@danielberndt
danielberndt / snippet-to-be-pasted-into-browser.js
Last active October 24, 2022 11:54
extract all cards via api
let subdomain = "MYSUBDOMAIN"; // for e.g. MYSUBDOMAIN.codecks.io
let cardQuery = {cardCreatedAt: {op: "gt", value: "2022-10-20"}};
// build up the nested query and define which models and fields we want to receive
let query = {
_root: [
{
account: [
{
@danielberndt
danielberndt / sequences.ts
Created October 20, 2023 08:07
Sequences
const lettersToSequence = (
letters: string,
{startVal = 0, implicitZero = false}: {startVal: number; implicitZero: boolean} = {
startVal: 0,
implicitZero: false,
}
) => {
const length = letters.length;
const letterToIndex = letters.split("").reduce((memo, letter, index) => {
memo[letter] = index;