Skip to content

Instantly share code, notes, and snippets.

import { createContext, forwardRef, useCallback, useMemo } from "react";
import { FlatList, FlatListProps, ViewToken } from "react-native";
import Animated, { useSharedValue } from "react-native-reanimated";
const MAX_VIEWABLE_ITEMS = 4;
type ViewabilityItemsContextType = string[];
export const ViewabilityItemsContext = createContext<
Animated.SharedValue<ViewabilityItemsContextType>
@suhodolskiy
suhodolskiy / contrasting.ts
Last active March 30, 2024 03:41
Contrasting color [Colord]
import { Plugin } from 'colord'
declare module 'colord/colord' {
interface Colord {
contrasting(): Colord
}
}
const plugin: Plugin = (ColordClass) => {
ColordClass.prototype.contrasting = function () {
@FelixZY
FelixZY / supabase_api_auth.sql
Last active July 12, 2025 12:59
How to configure Supabase (https://supabase.com/) to generate and accept API tokens.
-- Token Based API Access for Supabase
--
-- How to configure Supabase (https://supabase.com/) to generate and accept API tokens.
--
-- (c) 2022 Felix Zedén Yverås
-- Provided under the MIT license (https://spdx.org/licenses/MIT.html)
--
-- Disclaimer: This file is formatted using pg_format. I'm not happy with the result but
-- prefer to follow a tool over going by personal taste.
--
@intergalacticspacehighway
intergalacticspacehighway / keyboard-aware-reanimated-scrollview.tsx
Last active August 20, 2025 18:53
keyboard aware reanimated scrollview
import React from "react";
import { Dimensions, TextInput, ScrollView } from "react-native";
import Animated, {
useAnimatedKeyboard,
useAnimatedReaction,
runOnJS,
KeyboardState,
useAnimatedProps,
useAnimatedScrollHandler,
function Favorite({
postId = null,
isLiked: _isLiked = false,
numberOfLikes: _numberOfLikes = 0,
}) {
const [isLiked, setIsLiked] = React.useState(_isLiked);
const [numberOfLikes, setNumberOfLikes] = React.useState(_numberOfLikes ?? 0);
const likeDebounceRef = React.useRef();
const lastIsLikedStateRef = React.useRef(_isLiked);
@kyaroru
kyaroru / expo-config-plugin-modify-pod.ts
Last active May 11, 2024 07:52
Example of expo config plugin for modifying Podfile
import { ConfigPlugin, withDangerousMod } from '@expo/config-plugins'
import {
MergeResults,
mergeContents,
removeContents,
} from '@expo/config-plugins/build/utils/generateCode'
import path from 'path'
import fs from 'fs-extra'
const debug = require('debug')('file-viewer-plugin') as typeof console.log