Skip to content

Instantly share code, notes, and snippets.

@kachar
kachar / generateAzureImage.tsx
Created January 30, 2024 15:39
Dalee-3 Azure image geneation
import type { ImagesResponse } from 'openai/resources/images.mjs'
import type { AzureOpenAIInput, OpenAIChatInput } from '@langchain/openai'
import { typedFetch } from '@/server/utils/fetch.utils'
export const generateAzureImage = async ({
size,
prompt,
settings,
numImages,
}: {
@kachar
kachar / switch.tsx
Created January 27, 2024 06:48
shadcn switch with different sizes
'use client'
import type { VariantProps } from 'class-variance-authority'
import * as React from 'react'
import * as SwitchPrimitives from '@radix-ui/react-switch'
import { cva } from 'class-variance-authority'
import { cn } from '@/lib/utils'
const switchVariants = cva(
@kachar
kachar / Link-Next13.tsx
Last active January 21, 2024 11:44
Next.js Link + Material UI Link/Button components bundled with forwardRef
@kachar
kachar / README.md
Last active October 29, 2023 16:10
Profile Readme

GitHub Streak

@kachar
kachar / LocaleSwitcher.tsx
Last active February 1, 2023 06:56
i18next + next.js 10 + Material UI
import { useCallback } from 'react'
import { useRouter } from 'next/router'
import { useTranslation } from 'react-i18next'
import { Box, Button, ButtonGroup } from '@material-ui/core'
export default function LocaleSwitcher() {
const { t } = useTranslation()
const router = useRouter()
const changeLang = useCallback(
// Same route different language
import { Dispatch, SetStateAction, useState } from 'react'
export default function useLocalStorage<T>(
key: string,
initialValue: T,
): [T, Dispatch<SetStateAction<T>>] {
// State to store our value
// Pass initial state function to useState so logic is only executed once
const [storedValue, setStoredValue] = useState<T>(() => {
if (typeof window === 'undefined') {
@kachar
kachar / gist:0f787af108607a309c1c0858d87b34a2
Last active August 25, 2022 07:48 — forked from svilensabev/gist:713584cd30133969f395d1333563031e
PostgreSQL timeslots, rrulesets and booking timetables
-- First create schema/data data for tests
DROP TABLE api.slot CASCADE;
CREATE TABLE api.slot (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
name TEXT,
latitude NUMERIC,
longitude NUMERIC,
geog geography(Point, 4326) DEFAULT NULL
@kachar
kachar / gist:62e91c90a8cce7c6a0877b9563c5834b
Created June 9, 2022 09:39
find lines of code in a repo and sort them desc
wc -l $(git ls-files services/webapp/**/*.js ) | sort -n
@kachar
kachar / git-crypt-rm-gpg-user.sh
Created April 25, 2022 18:08 — forked from etam/git-crypt-rm-gpg-user.sh
Git-crypt remove user.
#!/usr/bin/env bash
#
# Script to remove GPG user (recipient) with git-crypt
#
# It will re-initialize git-crypt for the repository and re-add all keys except
# the one requested for removal.
#
# Note: You still need to change all your secrets to fully protect yourself.
# Removing a user will prevent them from reading future changes but they will
# still have a copy of the data up to the point of their removal.