Skip to content

Instantly share code, notes, and snippets.

@lejonmanen
lejonmanen / better.js
Last active October 24, 2024 15:32
Using Node.js async readline
import readline from 'node:readline'
async function ask(query) {
const rl = readline.createInterface({ input: process.stdin, output: process.stdout, tabSize: 4 });
return new Promise((resolve) => rl.question(query, (answer) => {
rl.close();
resolve(answer);
}));
}
@lejonmanen
lejonmanen / Ajax.jsx
Last active April 13, 2023 10:13
Send AJAX request in React component
import { useState, useEffect } from 'react'
// This function can be in a separate file
async function getData(setData) {
const url = 'API url here'
const response = await fetch(url)
const data = await response.json()
setData(data)
}
@lejonmanen
lejonmanen / verses.js
Last active April 2, 2023 20:33
Some verses from a Shakespeare sonnet
// https://www.gutenberg.org/files/100/100-0.txt
// The Project Gutenberg eBook of The Complete Works of William Shakespeare, by William Shakespeare
// (But this file only has the first 12)
const verses = ` 1
From fairest creatures we desire increase,
That thereby beauty’s rose might never die,
But as the riper should by time decease,
@lejonmanen
lejonmanen / CountAtom.js
Created April 2, 2023 18:55
React Recoil example
import { atom } from 'recoil'
// The key can be any unique value
// Default is the initial value
const countState = atom({
key: 'countState',
default: ''
});
export { countState }
@lejonmanen
lejonmanen / Ancestor.jsx
Last active April 12, 2023 12:33
React context example
import { useState } from 'react'
import { CounterContext } from './CounterContext.js'
/* The ancestor is the component that owns this particular piece of data. The ancestor is the only component that knows how to modify it. Therefore, if the descendants should be able to modify the value, we must send the set function as well.
If the descendants only need to read the value, we replace the object "countPackage" with the value "count".
*/
const Ancestor = () => {
// Initialize using default data
const [count, setCount] = useState(10)
@lejonmanen
lejonmanen / LiftingState.jsx
Created April 2, 2023 16:19
React: Lifting state up example
import { useState } from 'react'
/*
"Lifting state up" is useful when several components need to share state.
In this example, both Parent and Child needs to display the value of
"clicks". Child needs to update the value as well. We are lifting the
state up, out of the child component, into its parent.
1. Move the shared state to the common component - the component that
contains all of the components that needs to share state. Here, Parent is
@lejonmanen
lejonmanen / auth_config.json
Created December 16, 2022 12:13
Auth0 exempel, bara frontend
"Ersätt den här texten med domain och clientId från appens inställningar i Auth0"
@lejonmanen
lejonmanen / Demo.jsx
Created November 23, 2022 20:39
chart.js demo med React-komponent
import { Pie, Bar, Line } from 'react-chartjs-2';
import { data1, data2 } from './demoData'
const DemoChart = () => (
<div className="demo-chart">
<Bar data={data1} />
<Bar data={data2} />
</div>
)
@lejonmanen
lejonmanen / server.ts
Created October 10, 2022 14:43
Express web server, minimal template
// Import packages, route middleware, and initialize app
import express, { Express, Request, Response } from 'express'
const app = express()
const port: number = 1337
const pathToDist: string = 'dist'
// ----------------------------------------------------
// Install any middleware before adding routes
// Important middleware: cors, static folders
@lejonmanen
lejonmanen / Bst.cs
Last active June 28, 2022 08:08
Pretty print the contents of a binary search tree
public void Print()
{
Queue<Node<T>?> nodes = new Queue<Node<T>?>();
Queue<Node<T>?> newNodes = new Queue<Node<T>?>();
nodes.Enqueue(Root);
int depth = 0;
bool exitCondition = false;
while (nodes.Count > 0 && !exitCondition)
{