Skip to content

Instantly share code, notes, and snippets.

View hckhanh's full-sized avatar
🍊
Peace

Khánh Hoàng hckhanh

🍊
Peace
View GitHub Profile
import {
assign,
DoneInvokeEvent,
EventObject,
Machine,
send,
sendParent,
StateMachine,
StateSchema
} from "xstate";
import { Router } from "@reach/router";
import { useMachine } from "@xstate/react";
import { SnackbarProvider } from "notistack";
import React from "react";
import Header from "./components/Header";
import SignIn from "./components/SignIn";
import AuthMachine from "./states/AuthMachine";
const App: React.FC = () => {
const [current, send] = useMachine(AuthMachine, { devTools: true });
import {
Avatar,
Box,
Button,
Checkbox,
Container,
CssBaseline,
FormControlLabel,
Grid,
Link,
@hckhanh
hckhanh / DagredWidget.ts
Created April 14, 2020 12:35
DagredWidget (class component) for react-diagrams
class DagreWidget extends React.Component<DagreWidgetProps, any> {
engine: DagreEngine;
constructor(props: any) {
super(props);
this.engine = new DagreEngine({
graph: {
rankdir: "RL",
ranker: "longest-path",
marginx: 25,
{
"index_name": "trakas",
"start_urls": [
"https://trakas.js.org"
],
"stop_urls": [],
"selectors": {
"lvl0": {
"selector": "(//ul[contains(@class,'menu__list')]//a[contains(@class, 'menu__link menu__link--sublist menu__link--active')]/text() | //nav[contains(@class, 'navbar')]//a[contains(@class, 'navbar__link--active')]/text())[last()]",
"type": "xpath",
@hckhanh
hckhanh / upload.ts
Created January 10, 2025 09:27
How to upload with limit concurrency connections
/**
* Uploads artifacts with a set concurrency limit.
*/
async function uploadWithConcurrency(
artifacts: BunnyArtifact[],
concurrency: number,
task: (artifact: BunnyArtifact) => Promise<void>
): Promise<void> {
const queue: Promise<void>[] = []