View linkedin-unfollow-everyone.js
(() => { | |
let count = 0; | |
function getAllButtons() { | |
return document.querySelectorAll('button.is-following') || []; | |
} | |
async function unfollowAll() { | |
const buttons = getAllButtons(); |
View v1.tsx
import { useEffect, useRef } from 'react' | |
export function useWhyDidYouUpdate(name: string, props: Record<string, any>) { | |
const latestProps = useRef(props) | |
useEffect(() => { | |
const allKeys = Object.keys({ ...latestProps.current, ...props }) | |
const changesObj: Record<string, { from: any; to: any }> = {} | |
allKeys.forEach(key => { |
View App.tsx
import React from 'react' | |
import { StatusBar, Text, View } from 'react-native' | |
import { useSafeArea } from 'react-native-safe-area-context' | |
export function App() { | |
const safeAreaInsets = useSafeArea() | |
return ( | |
<View | |
style={{ |
View darkify_slack.sh
#!/bin/sh | |
# Darkify Slack on Mac OS: | |
SLACK_INTEROP_JS="/Applications/Slack.app/Contents/Resources/app.asar.unpacked/src/static/ssb-interop.js" | |
# Thanks to: https://gist.github.com/DrewML/0acd2e389492e7d9d6be63386d75dd99#gistcomment-2358430 | |
if [ -z "`grep tt__customCss ${SLACK_INTEROP_JS}`" ]; then | |
# Backup original CSS for reverts: | |
cp ${SLACK_INTEROP_JS} ${SLACK_INTEROP_JS}.bak | |
echo 'document.addEventListener("DOMContentLoaded",function(){let tt__customCss=`body{background:#222;color:#e6e6e6}a{color:#949494}a:link,a:visited{color:#949494}a:active,a:focus,a:hover{color:#c7c7c7}hr{border-bottom:1px solid #424242;border-top:1px solid #222}h1,h2,h3,h4{color:#e6e6e6}h1 a{color:#e6e6e6}h1 a:active,h1 a:hover,h1 a:link,h1 a:visited{color:#e6e6e6}.bordered{border:1px solid #363636}.top_border{border-top:1px solid #363636}.bottom_border{border-bottom:1px solid #363636}.left_border{border-left:1px solid #363636}.right_border{border-right:1px solid #363636}.bullet{color:#949494}.alert,.c-alert,.c-alert--bo |
View ExampleComponent.tsx
import React from 'react' | |
import { Button, Text, View } from 'react-native' | |
import { useDispatch } from 'react-redux' | |
import { useReduxState } from '../hooks/use-redux-state' | |
import * as actions from '../redux/actions' | |
import * as selectors from '../redux/selectors' | |
export function LoginScreen() { | |
const dispatch = useDispatch() |
View TouchableScale.tsx
// Demo: https://snack.expo.io/@brunolemos/touch-button-scale-effect | |
import React from 'react' | |
import { Animated, StyleProp, TouchableWithoutFeedback, TouchableWithoutFeedbackProps, ViewStyle } from 'react-native' | |
import { styleMerge } from 'shared/src/utils' | |
export interface TouchableScaleProps extends TouchableWithoutFeedbackProps { | |
containerStyle?: StyleProp<ViewStyle> | |
} |
View PlatformTouchable.tsx
// Source: https://github.com/react-community/react-native-platform-touchable | |
import React, { PureComponent, ReactNode } from 'react' | |
import { | |
BackgroundPropType, | |
Platform, | |
StyleProp, | |
TouchableNativeFeedback, | |
TouchableNativeFeedbackProperties, | |
TouchableNativeFeedbackStatic, | |
TouchableOpacity, |
View Example.jsx
// Live demo: https://snack.expo.io/@brunolemos/tabview | |
import React, { Component } from 'react'; | |
import { Platform, StyleSheet, View } from 'react-native'; | |
import { Constants } from 'expo'; | |
import TabView from './components/TabView'; | |
const routes = [{ index: 0, title: 'Tab 0' }, { index: 1, title: 'Tab 1' }]; |
View App.js
@withTest('myNewPropName') | |
export default class App extends PureComponent... |
View Xcode Build Phases
# Xcode > Build Phases > Bundle React Native code and images | |
export NODE_BINARY=node | |
./react-native-xcode.sh |
NewerOlder