Skip to content

Instantly share code, notes, and snippets.

View sturmenta's full-sized avatar
🌌

Nicolas Sturm sturmenta

🌌
  • Argentina
  • 22:08 (UTC -03:00)
View GitHub Profile
@sturmenta
sturmenta / example.ts
Last active October 28, 2022 18:29
get gist text - get gist raw text - fetch gist text
const gistUrl = 'https://gist.github.com/sturmenta/df1c9da1f219c88e996e48f19d57acd3';
const {data, error} = await getGistFirstFileText(`${gistUrl}.json`);
console.log(data);
// ## some title
//
// some text
@sturmenta
sturmenta / check-versionA-is-greater-or-equal-than-versionB.ts
Created October 29, 2022 03:03
check version "A" is greater or equal than version "B"
export const checkVersionAIsGreaterOrEqualThanVersionB = ({
versionA,
versionB,
}: {
versionA: string; // 1.2.3
versionB: string; // 1.2.3
}): boolean => {
const _versionA = {
major: parseInt(versionA.split('.')[0], 10), // 1.2.3 -> 1
minor: parseInt(versionA.split('.')[1].split('.')[0], 10), // 1.2.3 -> 2
@sturmenta
sturmenta / validateAtLeast13Years.ts
Created November 7, 2022 23:11
validate user date greater than 13 years
import dayjs from 'dayjs';
export const validateAtLeast13Years = (DDMMYYYY?: string): boolean => {
if (!DDMMYYYY) return false;
const timePickerDate = DDMMYYYY.split('/').reverse().join('-');
const date1 = dayjs();
const date2 = dayjs(timePickerDate);
const diff = date1.diff(date2, 'years');
@sturmenta
sturmenta / removeHoursMinutesAndSecondsFromDate.ts
Created November 7, 2022 23:16
remove Hours Minutes And Seconds From Date
import dayjs from 'dayjs';
/**
* return DD/MM/YYYY
*/
export const removeHoursMinutesAndSecondsFromDate = (
date: Date,
): {newDate: dayjs.Dayjs; DDMMYYYY: string} => {
const _date = dayjs(date);
@sturmenta
sturmenta / plausible.ts
Last active May 28, 2023 16:29
plausible react-native expo config
import Plausible, { EventOptions, PlausibleOptions } from 'plausible-tracker';
import { setLocationHref } from '@expo/metro-runtime/build/location/Location.native.js';
// NOTE: see tracking events here: https://plausible.io/asd.xyz
const runPlausibleInitialConfig = () => {
let alreadyRun = false;
if (!alreadyRun) {
alreadyRun = true;
@sturmenta
sturmenta / WeekdaysSelector.tsx
Created June 12, 2023 03:53
react native WeekdaysSelector
import { TouchableOpacity, View } from 'react-native';
import { withLightHapticFeedback } from '_utils';
import { C_Text } from './C_Text';
const weekdays = ['L', 'M', 'X', 'J', 'V', 'S', 'D'];
export const WeekdaysSelector = ({
selectedDays,
@sturmenta
sturmenta / useGetDivDimensions.ts
Last active March 3, 2024 05:13
get dimensions of div with ResizeObserver and hooks
import { useEffect, useRef, useState } from "react";
export const useGetDivDimensions = () => {
const [dimensions, setDimensions] = useState({ height: 0, width: 0 });
const div_ref = useRef<HTMLDivElement | null>(null);
useEffect(() => {
const resizeObserver = new ResizeObserver((event) => {
setDimensions({
@sturmenta
sturmenta / getPercentageInHex.ts
Created July 24, 2023 05:05
convert decimal percentage on hexadecimal percentage to be used with hex colors
export const getPercentageInHex = (percentage: number): string => {
if (percentage >= 0 && percentage <= 100) {
const preHexNumber = (percentage * 255) / 100;
const hexNumber = preHexNumber.toString(16).split('.')[0].padStart(2, '0').replace('f0', 'ff');
return hexNumber;
}
return 'ff';
};
@sturmenta
sturmenta / dashboard-example.tsx
Last active March 18, 2024 09:29
Sidebar for mobile and desktop using shadcn-ui
"use client"
import { WithSidebar } from "@/components/with-sidebar"
export const Dashboard = () => {
return (
<WithSidebar
sidebarContent={SidebarContent}
mobileDashboardHeader={CustomHeader}>
<div className="p-10">
@sturmenta
sturmenta / supabase-edge-functions--starter.md
Last active December 31, 2023 17:14
supabase edge functions - starter

supabase edge functions - starter

  • this need a workspace to work because supabase-edge-functions run on deno and the linter and config is different for typescript and deno
  1. move existing files to a folder (website, frontend, etc)
  2. create a new workspace file to vscode config called name-of-your-project.code-workspace and inside put this:
{
 "folders": [