Skip to content

Instantly share code, notes, and snippets.

View fobos531's full-sized avatar

Jakov Glavina fobos531

  • DoMore
  • Prelog, Croatia
View GitHub Profile
@MarceloPrado
MarceloPrado / DestructiveActionGuard.tsx
Last active April 22, 2024 17:35
An easy way of seeking user confirmation before proceeding with a destructive action. Demo: https://twitter.com/marceloterreiro/status/1779657639745798411
import type { ReactElement } from "react";
import { cloneElement, memo, useCallback } from "react";
import { AlertV2 } from "@/components/AlertV2/alertV2Helpers";
export interface DestructiveActionGuardProps {
children: ReactElement<{ onPress: () => void }>;
confirmationTitle?: string;
confirmationDescription?: string;
}
@nandorojo
nandorojo / widget.md
Last active July 8, 2024 23:35
How to create an iOS Widget with React Native (Expo / EAS)

First, copy the config plugin from this repo: https://github.com/gaishimo/eas-widget-example

You can reference my PRs there too (which, at the time of writing, aren't merged).

After adding the config plugin (see app.json) with your dev team ID, as well as a bundle ID, you can edit the widget folder to edit your code. Then npx expo run:ios (or npx expo run:android).

Workflow

After npx expo run:ios, open the ios folder, and open the file that ends in .xcworkspace in XCode. Make sure you have the latest macOS and XCode versions. If you don't, everything will break.

@intergalacticspacehighway
intergalacticspacehighway / viewability-tracker-flatlist.tsx
Last active January 23, 2024 03:38
Viewability tracker with shared values
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>
@mrousavy
mrousavy / MEMOIZE.md
Last active June 28, 2024 17:29
Memoize!!! 💾 - a react (native) performance guide
In computing, memoization or memoisation
is an optimization technique used primarily
to speed up computer programs by storing
the results of expensive function calls and  
returning the cached result when the same
inputs occur again.                                         
                                                     — wikipedia
@canpoyrazoglu
canpoyrazoglu / react-native+0.63.4.patch
Created January 3, 2021 11:30
React Native patch to display all images and colors in P3 color space on iOS (use patch-package npm package to apply)
diff --git a/node_modules/react-native/Libraries/Image/RCTImageUtils.m b/node_modules/react-native/Libraries/Image/RCTImageUtils.m
index 899bfe4..33133c3 100644
--- a/node_modules/react-native/Libraries/Image/RCTImageUtils.m
+++ b/node_modules/react-native/Libraries/Image/RCTImageUtils.m
@@ -308,13 +308,26 @@ BOOL RCTUpscalingRequired(CGSize sourceSize, CGFloat sourceScale,
if (!imageRef) {
return nil;
}
+ if (@available(iOS 10, *)) {
+ // Return all images in P3 color space
@grahampugh
grahampugh / Adobe CC Cleaner-postinstall.sh
Created November 18, 2019 15:06
A script to clean up properly the things that Adobe CC Cleaner fails to remove.
#!/bin/bash
## postinstall script to remove CCDA applications
# remove any existing version of the tool
echo "Moving the CC Cleaner app to Utilities in case users need it later"
rm -rf /Applications/Utilities/Adobe\ Creative\ Cloud\ Cleaner\ Tool.app ||:
mv /Applications/Adobe\ Creative\ Cloud\ Cleaner\ Tool.app /Applications/Utilities/Adobe\ Creative\ Cloud\ Cleaner\ Tool.app
# run the cleaner tool to remove EVERYTHING!
echo "Running the CC Cleaner app with 'removeAll=All' option"
@Norod
Norod / UinstallXcode10_x.txt
Last active December 16, 2022 10:49
How to completely remove Xcode 10
# How to completely remove Xcode 10
# Info taken from this thread: https://forums.developer.apple.com/thread/110227
# Keywords:
# Uninstall, Remove, Wipe, Delete, Xcode, Xcode 10
# Assuming everythig is installed in the default path
@amcvitty
amcvitty / password_autofill_expo_how_to.md
Last active July 11, 2024 15:26
Configure Password Autofill on a React Native Expo app

Password Autofill on a React Native Expo app

Developing an app to accompany our website, worried that we would lose people in the transition if they couldn't remember their password, we were looking to make our app do Password AutoFill, a feature in iOS.

A talk from WWDC introducing the feature: https://developer.apple.com/videos/play/wwdc2017/206/

It works well, but there were a few bumps in the road making it work for React Native on Expo, so here are some notes to help out.

Apple's docs are here: https://developer.apple.com/documentation/security/password_autofill and they say something like this:

@guycalledseven
guycalledseven / manual-uninstall-wireshark.sh
Created March 6, 2017 12:10
Manually remove Wireshark leftovers MacOS
sudo rm -r /Applications/Wireshark.app
sudo rm -r /Library/Wireshark
sudo rm /Library/StartupItems/ChmodBPF
sudo rm /Library/LaunchDaemons/org.wireshark.ChmodBPF.plist
sudo rm /Library/Application\ Support/Wireshark/ChmodBPF/ChmodBF
sudo rm /Library/Application\ Support/Wireshark/ChmodBPF/org.wireshark.ChmodBPF.plist
sudo dscl . -delete /Groups/access_bpf
@jamesattard
jamesattard / gist:51240a9a60ca6bf9513e
Last active March 20, 2024 14:09
Fix Permissions and Refresh KExt cache
echo "Fixing ownership and permissions..."
chmod -R 755 /System/Library/Extensions/*
chown -R root:wheel /System/Library/Extensions/*
chown root:admin /
echo "Rebuilding kext cache..."
kextcache -system-prelinked-kernel
kextcache -system-caches