Skip to main content

Coderator Follow System CRUD

Nov 18, 2022AustinLeath
Loading...

More TypeScript Posts

React usePrevious Hook

Oct 15, 2022CodeCatch

0 likes • 142 views

import { useState, useEffect, useRef } from "react";
// Usage
function App() {
// State value and setter for our example
const [count, setCount] = useState(0);
// Get the previous value (was passed into hook on last render)
const prevCount = usePrevious(count);
// Display both current and previous count value
return (
<div>
<h1>
Now: {count}, before: {prevCount}
</h1>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
}
// Hook
function usePrevious(value) {
// The ref object is a generic container whose current property is mutable ...
// ... and can hold any value, similar to an instance property on a class
const ref = useRef();
// Store current value in ref
useEffect(() => {
ref.current = value;
}, [value]); // Only re-run if value changes
// Return previous value (happens before update in useEffect above)
return ref.current;
}

Header Typography MUI

May 11, 2025C S

0 likes • 3 views

// theme.ts
import { createTheme } from '@mui/material/styles';
const theme = createTheme({
typography: {
h1: {
fontSize: '2rem',
fontWeight: 700,
lineHeight: 1.3
},
h2: {
fontSize: '1.625rem',
fontWeight: 700,
lineHeight: 1.35
},
h3: {
fontSize: '1.375rem',
fontWeight: 700,
lineHeight: 1.4
},
h4: {
fontSize: '1.125rem',
fontWeight: 700,
lineHeight: 1.45
},
h5: {
fontSize: '1rem',
fontWeight: 700,
lineHeight: 1.5
},
h6: {
fontSize: '0.875rem',
fontWeight: 700,
lineHeight: 1.5
},
},
});
function removeDuplicates(nums: number[]): number {
nums.splice(0, nums.length, ...Array.from(new Set(nums)));
return nums.length;
};
console.log(removeDuplicates([1, 2, 3, 4, 5, 6]))

Depth-First Search in TypeScript

Sep 19, 2024Sam-C137

0 likes • 2 views

class DFS
{
public dfs(G: DFSGraph, startVert: number)
{
let visited: boolean[] = Array<boolean>();
// Pre-populate array:
for(let i = 0; i < G.size; i++)
{
visited.push(false);
}
let s: number[] = new Array();
visited[startVert] = true;
s.push(startVert);
while(s.length > 0)
{
const v = s.pop();
for(let adjV of G.adj[v])
{
if(!visited[adjV])
{
visited[adjV] = true;
s.push(adjV);
}
}
}
}
public dfsRecursive(G: DFSGraph, startVert: number)
{
let visited: boolean[] = Array<boolean>();
// Pre-populate array:
for(let i = 0; i < G.size; i++)
{
visited.push(false);
}
this.dfsAux(G, startVert, visited);
}
private dfsAux(G: DFSGraph, v: number, visited: boolean[])
{
visited[v] = true;
for(let adjV of G.adj[v])
{
if(!visited[adjV])
{
// this.foo(); // Something can happen before the visit.
this.dfsAux(G, adjV, visited);
// this.bar(); // Something can happen after the visit.
}
}
}
}

D3 use-hook in React

Dec 9, 2024shaiRos

0 likes • 10 views

import React, { useEffect, useRef, useState } from 'react';
import * as d3 from 'd3';
export default function useD3(renderChartFn : (svg : d3.Selection<SVGElement,{},HTMLElement>) => any, dependencies : any[]) {
const ref = useRef<SVGSVGElement>();
useEffect(() => {
let d3El = d3.select(ref.current)
renderChartFn(d3.select(ref.current));
return () => {};
}, dependencies);
return ref;
}
function MyChart(props : {
w: number,
h: number,
data: Array<any>
}) {
const [currentData,setCurrentData] = useState(props.data)
let svgRef = useD3((svg) => {
if (props.data === currentData) return
setCurrentData(props.data)
// add d3 code
svg.selectAll("*").remove();
const margin = { top: 0, right: 80, bottom: 20, left: 10 };
const width = props.w - margin.left - margin.right;
const height = props.h - margin.top - margin.bottom;
const canvas = svg
.attr('width', width + margin.left + margin.right)
.attr('height', height + margin.top + margin.bottom)
.append('g')
.attr('transform', `translate(${margin.left},${margin.top})`);
// data
const data = props.data
},[props])
return (<svg ref={svgRef} />)
}

typescript hello

Nov 21, 2023AustinLeath

0 likes • 25 views

// Print Hello, World!
console.log("Hello, World!");