Skip to content

Instantly share code, notes, and snippets.

@StephenGrider
StephenGrider / page.tsx
Last active November 27, 2023 17:17
Next Success + Redirect
'use client';
import { useRouter } from 'next/navigation';
import { useEffect } from 'react';
import { useFormState } from 'react-dom';
import * as actions from '@/actions';
export default function SnippetCreatePage() {
const router = useRouter();
const [formState, action] = useFormState(actions.createSnippet, {
@StephenGrider
StephenGrider / script.js
Created October 27, 2023 14:23
Customize Miro UI
// ==UserScript==
// @name Miro
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Customize the Miro UI
// @author StephenGrider
// @match https://miro.com/app/board/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=miro.com
// @grant none
// ==/UserScript==
import { Reducer, Dispatch } from 'react';
import createDataContext from './createDataContext';
import {
Actions,
ChangeNameAction,
StartRecordingAction,
StopRecordingAction,
AddLocationAction,
ResetAction,
} from './actions';
import React from 'react';
const { useState, useEffect } = React;
export default function App() {
const [posts, setPosts] = useState([]);
useEffect(() => {
const getPosts = async () => {
const fetchedPosts = await fetchPosts();
setPosts(fetchedPosts);
@StephenGrider
StephenGrider / app.js
Created May 6, 2020 16:18
Class Component w/ Notes
import React from 'react';
import ReactDOM from 'react-dom';
class TodoApp extends React.Component {
// Initializes the 'state' property. This will create an instance variable
// of 'this.state'. It is initialized one time, when the component is first instantiated
state = { items: [], text: ''};
// constructor(props) {
// super(props);
----------------------------- MODULE Ticketing -----------------------------
EXTENDS TLC, Integers, Sequences
(*--algorithm Ticketing
\* Buyer and seller reflect the account balance of two different users
variables
seller = 0,
buyer \in 1..2,
ticket \in [status: {"onsale"}, price: 1..2]
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-pgadmin
labels:
name: deployment-pgadmin
spec:
replicas: 1
selector:
matchLabels:
function flatten(node, oldPrefix = '') {
let map = {};
let prefix = oldPrefix ? `${oldPrefix}.` : '';
for (let key in node) {
const value = node[key];
if (value && !Array.isArray(value) && typeof value === 'object') {
map = { ...map, ...flatten(value, `${prefix}${key}`)}
} else {
map = { ...map, ...{ [`${prefix}${key}`]: value } };
import React, { Component } from "react";
class SearchBar extends Component {
constructor(props) {
super(props);
this.state = { term: "" };
}
render() {
@StephenGrider
StephenGrider / rinkeby-faucet.js
Created January 26, 2018 16:54
Rinkeby Faucet Server
const express = require('express');
const bodyParser = require('body-parser');
const url = require('url');
const HDWalletProvider = require('truffle-hdwallet-provider');
const Web3 = require('web3');
const infura_apikey = 'YOUR_INFURA_KEY';
const mnemonic =
'YOUR_MNEMONIC';