Skip to content

Instantly share code, notes, and snippets.

View dmurawsky's full-sized avatar

Daniel Murawsky dmurawsky

View GitHub Profile
@dmurawsky
dmurawsky / ProgressBar.tsx
Last active March 12, 2024 01:26
Progress bar using Tailwind CSS
export default function ProgressBar({ currentLevel }: { currentLevel: number }) {
return (
<div className="flex justify-between items-center font-mono relative">
{Array.from({ length: 9 }, (_, i) => i).map((index) => (
<div
key={index}
className={`absolute h-1 z-0 ${index < currentLevel - 1 ? "bg-white" : "bg-zinc-800"}`}
style={{ left: `calc(${(index / 10) * 100}% + 4%)`, width: `11%` }}
></div>
))}
@dmurawsky
dmurawsky / index.js
Last active February 4, 2024 17:20
How to make a page full height in Next.js
const FullHeightPage = () => (
<div>
Hello World!
<style global jsx>{`
html,
body,
body > div:first-child,
div#__next,
div#__next > div {
height: 100%;
@dmurawsky
dmurawsky / hubSpotRequests.js
Created December 5, 2023 15:58
All HubSpot Requests
const getTasks = (ownerId, after) =>
hubspotInstance
.post("/crm/v3/objects/tasks/search", {
after,
limit: 100,
filterGroups: [
{
filters: [
{
@dmurawsky
dmurawsky / tsconfig.json
Created March 3, 2023 03:15
Node Script TS Config File
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"allowJs": false,
"alwaysStrict": true,
"baseUrl": ".",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"incremental": true,
"isolatedModules": true,
@dmurawsky
dmurawsky / package-purchase.json
Created April 5, 2022 16:13
Examples of Zenoti Packages
{
"user_package_id": "a12802db-834f-48c4-89f2-e4a1558e8bc2",
"user_package_state": 0,
"redeemable": null,
"invoice": {
"status": 4,
"receipt_no": "II9947171",
"id": "8bf6c016-b107-41b9-8218-2c6b90c4aba7",
"no": "II9947171"
},
@dmurawsky
dmurawsky / Header.module.css
Last active October 10, 2021 02:01
Next.js Lavalamp Header
.nav {
--link-one: 160px;
--link-two: 160px;
--link-three: 160px;
--link-four: 160px;
--link-five: 160px;
--menu-width: calc(var(--link-one) + var(--link-two) + var(--link-three) + var(--link-four) + var(--link-five));
--link-two-left: var(--link-one);
@dmurawsky
dmurawsky / firebase8.ts
Last active October 9, 2021 02:34
Example of Firebase v9 database functions vs Firebase v8
import firebase from "firebase/app";
import "firebase/database";
export const onceValue = <T>(path: string): Promise<Nullable<T>> =>
firebase
.database()
.ref(path)
.once("value")
.then((snap) => snap.val());
export const firebaseUpdate = (path: string, updateObj: Object) => firebase.database().ref(path).update(updateObj);
export const saveLiveSwitchRecording = async (
recordingId: string,
channelId: string,
fileName: string,
type: "video" | "audio"
) => {
const file = makeLiveSwitchRecordingFile(recordingId, channelId, fileName);
const format = fileName.substring(fileName.indexOf(".") + 1);
const writeStream = file.createWriteStream({
metadata: {
@dmurawsky
dmurawsky / getChromeVersion.js
Created September 30, 2021 18:34
Get Chrome/Chromium version and alert
const getChromeVersion = () => {
const raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)
return raw ? parseInt(raw[2], 10) : false
}
if (getChromeVersion() < 93) {
alert('We recommend you use a Chrome browser version 93 or greater otherwise you may experience degraded service.')
}
@dmurawsky
dmurawsky / pattern.js
Created May 27, 2020 16:23
The pattern of the universe
// Usage: Run the below code in your termainal by either running node and copying the code into the REPL or by saving the code to a file and running node pattern.js
// It will output a consistent pattern no matter how high you count.
// Change 1000 to a higher number to test it
let number = 1;
while (number < 1000) {
next = number + 1;
let reduce = number * next + "";
while (reduce.length > 1) {