Skip to content

Instantly share code, notes, and snippets.

@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)
{
@lejonmanen
lejonmanen / Sort.cs
Created June 17, 2022 13:25
Binärsökning, C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Datalogi_1
{
public class Sort
{
@lejonmanen
lejonmanen / ManageUsers.tsx
Created April 28, 2022 09:58
Modifying an array with immer and TypeScript
import produce from 'immer'
import { useState } from 'react'
// Move the interface to a separate file, User.ts
interface User {
id: number;
name: string;
}
// Many times, a variable may not have received its value yet. Use the TypeScript union operator to make that clear. A common use case is when fetching data from an API.
@lejonmanen
lejonmanen / Counter.jsx
Last active September 12, 2022 14:21
Redux boilerplate for React projects
// src/components/Counter.jsx
import { useDispatch, useSelector } from 'react-redux'
import { actions } from '../features/counter'
const Counter = () => {
// dispatch används för att skicka actions till store, så att reducers kan producera nästa state
const dispatch = useDispatch()
// useSelector väljer ut en del av state från Redux store. "counter" är namnet på din reducer i rootReducer-filen.
const count = useSelector(state => state.counter)
@lejonmanen
lejonmanen / ContextDemo.jsx
Created April 11, 2022 09:43
React Context demo using hooks
import { createContext, useState, useContext } from 'react'
// Create the context in a separate file. Import it to every component that needs it.
const CounterContext = createContext(0)
const ContextDemo = () => {
const [count, setCount] = useState(2)
const contextValue = { count, setCount }
@lejonmanen
lejonmanen / datatyper.js
Last active March 16, 2022 11:02
JavaScript demo datatyper och funktioner
/*
console.log('Hello world') // apostrof (enkelfnutt)
console.log("Hello world") // citattecken (dubbelfnutt)
console.log(`Hello world`) // grav accent, backtick
*/
const exempel = 15 // global, gäller i hela filen
console.log(exempel)
// definiera funktionen sayName
function sayName(name) {