Skip to content

Instantly share code, notes, and snippets.

@HaNdTriX
HaNdTriX / image_to_data_url.js
Last active February 27, 2022 07:23
Convert an image to base64URL.
/**
* Converts an image to a dataURL
* @param {String} src The src of the image
* @param {Function} callback
* @param {String} outputFormat [outputFormat='image/png']
* @url https://gist.github.com/HaNdTriX/7704632/
* @docs https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement#Methods
* @author HaNdTriX
* @example
*
@HaNdTriX
HaNdTriX / useRoom.ts
Last active July 14, 2022 00:10
Simple shared conflict free peer to peer state via valtio and y.js.
import * as Y from "yjs";
import { bindProxyAndYMap } from "valtio-yjs";
import { WebrtcProvider } from "y-webrtc";
import { IndexeddbPersistence } from "y-indexeddb";
import { proxy } from "valtio";
import { useMemo, useEffect } from "react";
type WebrtcProviderOptions = ConstructorParameters<typeof WebrtcProvider>[2];
export default function useRoom<T extends Record<string, unknown>>(
import { useEffect, useRef } from "react";
type ElementPickerProps = {
onPick: (event: MouseEvent, element: HTMLElement) => void;
};
export default function ElementPicker({ onPick }: ElementPickerProps) {
const lastSelectedRef = useRef<HTMLElement>();
const topRef = useRef<HTMLDivElement>(null);
const rightRef = useRef<HTMLDivElement>(null);
@HaNdTriX
HaNdTriX / absolutify.js
Created December 1, 2022 16:46
Convert relative paths to absolute paths inside html string
/**
* Convert relative paths to absolute paths
* @author HaNdTriX
* @param {string} html - HTML string
* @param {string} baseUrl - base url to prepend to relative paths
* @param {string[]} [attributes] - attributes to convert
* @returns {string}
*/
function absolutify(
html,
function createLogger(namespace) {
return new Proxy(console, {
get(target, key) {
return target[key].bind(target, "\x1b[33m%s\x1b[0m", namespace, "-");
},
});
}
const logger = createLogger('my-namespace')
@HaNdTriX
HaNdTriX / sha256.js
Last active April 10, 2024 08:08
Convert a string to an sha256 hash in JavaScript
/**
* Convert a string to an sha256 hash
* @param str {string}
* @returns {string}
*/
async function sha256(str) {
const arrayBuffer = new TextEncoder("utf-8").encode(str)
const hashAsArrayBuffer = await crypto.subtle.digest('SHA-256', arrayBuffer);
const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer);
return Array.from(uint8ViewOfHash).map((b) => b.toString(16).padStart(2, '0')).join('');