SELECT DISTINCT colA, colB, colC picks only one row per distinct combination of all columns colA and colB and colC, dropping the duplicates.
Source: https://chartscreator.com/blog/postgresql-distinct-on-multiple-columns/
| import * as FileSystem from 'expo-file-system'; | |
| import { Platform } from 'react-native'; | |
| import { IStorageEngine } from 'lib/persistoid'; | |
| import { addDebugBreadcrumb, addErrorBreadcrumb } from 'lib/sentry'; | |
| function isAndroidMissingFileOrDirectoryError(error: unknown) { | |
| if ( | |
| Platform.OS === 'android' && | |
| hasMessage(error) && |
| { | |
| "editor.inlineSuggest.enabled": true, | |
| "github.copilot.enable": { | |
| "*": false, | |
| "plaintext": false, | |
| "markdown": false, | |
| "scminput": false, | |
| "ts": true, | |
| "js": true, | |
| "jsx": true, |
| import { useMemo, useRef } from 'react'; | |
| import { useMemoizedFn } from 'ahooks'; | |
| import { noop } from 'lodash'; | |
| type UseRadioInputs = { | |
| // Defaults to undefined | |
| defaultValue?: any; | |
| onChange?: (value: any) => void; |
| 1. yarn add --dev detox jest-circus | |
| 2. detox init -r jest (This creates the e2e folder along with the .detoxrc.json) | |
| 3. yarn add --dev eslint-plugin-detox (optional) | |
| plugins: [...'detox'...], | |
| - Add this to your eslint config plugins | |
| 4.Make sure your your **eas.json** has a simulator build set up that looks like this then create a simulator release build by running: **eas build --profile simulator --platform ios** | |
| "simulator": { | |
| "ios": { | |
| "simulator": true, |
SELECT DISTINCT colA, colB, colC picks only one row per distinct combination of all columns colA and colB and colC, dropping the duplicates.
Source: https://chartscreator.com/blog/postgresql-distinct-on-multiple-columns/
Paste without formating - Command+Option+Shift+V - https://www.howtogeek.com/285319/how-to-paste-text-without-formatting-on-macos/
| Cu.import('resource://gre/modules/ctypes.jsm'); | |
| const cg = ctypes.open('/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics'); | |
| const CFTimeInterval = ctypes.double; | |
| const CGEventSourceStateID = ctypes.uint32_t; | |
| const CGEventType = ctypes.uint32_t; | |
| const kCGEventSourceStateCombinedSessionState = 0; | |
| const kCGAnyInputEventType = 0xFFFFFFFF; |
| import React, { | |
| Children, | |
| createContext, | |
| useContext, | |
| useEffect, | |
| useRef, | |
| useState | |
| } from 'react'; | |
| import { |
| import React, { useCallback, useEffect, useRef } from 'react';import { defaults, omit, pick } from 'lodash'; | |
| import { useController, UseControllerProps } from 'react-hook-form'; | |
| import { TextInput, TextInputProps } from 'react-native';import { HookedInputTransformer } from 'src/lib/react-hook-form-transforms';interface HookedTextInputProps | |
| extends Omit<TextInputProps, 'defaultValue'>, | |
| UseControllerProps { | |
| transform?: HookedInputTransformer; | |
| }export default function withHookedInput( | |
| ControlledInputComponent: typeof TextInput | |
| ) { | |
| function HookedInput({ transform, ...props }: HookedTextInputProps) { |
| import * as React from 'react'; | |
| import { Text, View, StyleSheet, TextInput, Button, Alert } from 'react-native'; | |
| import { useForm, useController } from 'react-hook-form'; | |
| import Constants from 'expo-constants'; | |
| import { pick, omit, defaults } from 'lodash'; | |
| const REQUIRED = { required: true }; | |
| function ClassicHookedTextInput(props) { | |
| const controllerProps = defaults( |