Skip to content

Instantly share code, notes, and snippets.

@lejonmanen
lejonmanen / LoginForm.jsx
Created April 1, 2026 16:22
React-formulär med validering
/*
Exempel på validering av formulär
Förbättringar:
+ Flytta valideringslogik till en separat hook för återanvändbarhet.
+ Lägg till fokus på första fel för bättre tillgänglighet: inputRef.current.focus()
+ Lägg till visuell feedback på input (t.ex. border-färg) för bättre UX. Återkoppla med mer än färg.
*/
import { useState } from "react";
@lejonmanen
lejonmanen / App.jsx
Created March 31, 2026 12:21
React Suspense exempel
// App.jsx
import { Suspense } from 'react'
import './App.css'
import Loading from './Loading'
import Consumer from './Consumer'
const App = () => (
<div>
<Suspense fallback={<Loading />}>
<Consumer />
@lejonmanen
lejonmanen / python-ci.yml
Last active March 27, 2026 15:04
Exempel på YAML för Python
name: Python CI/CD
# Talar om när jobben ska köras. Denna inställning bevakar när man gör push eller pull request mot branchen "main".
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
@lejonmanen
lejonmanen / txt
Created November 14, 2025 13:18
Gott och blandat för grupparbete JavaScript grund
SVG är ett bildformat, som man kan skriva med HTML-syntax. Eftersom den består av HTML-element kan man välja ut de ingående delarna med hjälp av JavaScript.
Exempel
Filen innehåller:
<path id="scaffold" ...>
Skriv i JS:
const part1 = document.querySelector('#scaffold')
part1.classList.add('css-klass som gör elementet osynligt')
@lejonmanen
lejonmanen / Button.tsx
Created October 14, 2025 09:52
Button component with TypeScript and Tailwind
import React from 'react';
// this button can have all <button> props from standard HTML
type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
className?: string;
children?: React.ReactNode;
};
/* Example use:
<Button> I'm a button </Button>
@lejonmanen
lejonmanen / dynamodb-node.ts
Created September 14, 2025 15:22
Använda DynamoDB från Node
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
import { DynamoDBDocumentClient, GetCommand, PutCommand, ScanCommand } from "@aws-sdk/lib-dynamodb";
/*
GetCommand används för att hämta en specifik Item i en Table. (AWS rekommenderar att man har allt i samma tabell.)
ScanCommand kan hämta hela innehållet i en tabell. Opraktiskt om man har mycket data.
PutCommand lägger till en ny Item.
UpdateItemCommand ändrar en Item.
DeleteCommand
*/
@lejonmanen
lejonmanen / ask.ts
Created August 14, 2025 10:02
Node async readline
/* Exempel på användning:
import { ask } from './ask.ts'
let x: string = await ask('Vilken är din favoritfärg? ')
console.log('Du svarade: ' + x)
*/
import readline from 'node:readline'
async function ask(query: string): Promise<string> {
const rl = readline.createInterface({ input: process.stdin, output: process.stdout, tabSize: 4 });
@lejonmanen
lejonmanen / search.feature
Last active April 5, 2025 19:29
Exempel på Page Object för söksida för en musiktjänst
Feature: Musiksökning
Som en användare av musiktjänsten
Vill jag kunna söka efter musik
För att hitta musik jag gillar
Background:
Given att jag är inloggad på musiktjänsten
And att jag är på söksidan
Scenario: Söka efter musik med giltigt sökord
@lejonmanen
lejonmanen / ask.js
Created October 24, 2024 15:35
Read input from user in terminal, Node.js
/*
Use this file in your project.
But first, create a Node project:
npm init -y
Then add a line to package.json:
"type": "module",
Usage:
@lejonmanen
lejonmanen / .env
Last active September 26, 2024 15:04
Fullstack MERN with TypeScript
# Add your secrets here
CONNECTION_STRING=yes-here