Skip to content

Instantly share code, notes, and snippets.

@chudnyi
chudnyi / package.json
Created January 8, 2018 08:24
React native package.json scripts
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start --reset-cache",
"start-no-reset": "node node_modules/react-native/local-cli/cli.js start",
"packager:kill": "react-native-kill-packager",
"packager:restart": "react-native-kill-packager; npm start",
"lint": "eslint . --cache --ext js",
"lint-fix": "eslint src/ --ext js --fix",
"flow": "flow",
"android": "node node_modules/react-native/local-cli/cli.js run-android",
"ios": "node node_modules/react-native/local-cli/cli.js run-ios",
@chudnyi
chudnyi / 1-mapNavigationStateParamsToProps-using.md
Last active December 13, 2018 08:21
React Native Декоратор @mapNavigationStateParamsToProps для передачи параметров react-navigation в скрин через свойства

Способы получения в скрине параметров, переданных через react-navigation

  • 🚫 забрать напрямую из стейта react-navigation

    • 🚫 увеличивает количество связей компонента или VM, заставляет явно указывать зависимость от react-navigation
    • 🚫 не позволяет передать параметры в компонент скрина кроме как через навигацию
  • ✅ использовать декоратор @mapNavigationStateParamsToProps, который прозрачно переложит параметры из навигатора в props компонента скрина

    • ✅ нет лишней зависимости от react-navigation
    • ✅ компонент скрина остаётся классическим react компонентом, получающим все параметры через props
  • ✅ подталкивает к явному указанию типов параметров через интерфейс

@chudnyi
chudnyi / react-native-ios-build.sh
Last active September 19, 2018 06:02
React Native iOs build script
#!/bin/bash
set -x #echo on
set -e
### vars
CI_BUILD_NUMBER=${CI_BUILD_NUMBER:=0}
BUILD_TARGET=${BUILD_TARGET:='staging'}
CI_FABRIC_UPLOAD=${CI_FABRIC_UPLOAD:='NO'} # YES | NO
WORK_DIR=${HOME}/work
#!/bin/bash
### This one is automatically executed by build process. See xcode Build Phases->Build Fabric
### Set BUILD_ENV in XCode project Build Settings
api_key=`sed -nE 's/^FABRIC_API_KEY\=(.*)$/\1/p' ../config/${BUILD_ENV}.ios.env`
build_secret=`sed -nE 's/^FABRIC_BUILD_SECRET\=(.*)$/\1/p' ../config/${BUILD_ENV}.ios.env`
./Fabric.framework/run "$api_key" "$build_secret"
@chudnyi
chudnyi / running-text-line.tsx
Last active November 30, 2020 19:21
React Native RunningLine component
import * as React from 'react';
import { StyleProp, TextStyle } from 'react-native';
import MarqueeText from 'react-native-marquee';
// Логика работы бегущей строки:
// 1. При открытии экрана с бегущей строкой сразу начинается движение строки слева-направо.
// 2. По достижении конца строки пауза 2 секунды
// 3. После паузы в 2 секунды строка возвращается обратно в начало (съезжает справа-налево)
// 4. По достижении начала строки пауза 7 секунд
// 5. После паузы в 7 секунд строка двигается слева-направо
declare module 'react-native-webview-messaging' {
import * as React from 'react';
import { WebViewProperties } from 'react-native';
export class WebView extends React.Component<WebViewProperties> {
}
export const Events: { READY: string };
module.exports = {
plugins: [
['transform-inline-environment-variables', {
'exclude': 'NODE_ENV'
}]
]
};

demo-gist-with-images

Markdown with images embedded into WordPress blog post

Image from Amazon cloudfront.net

image

from googleusercontent

@chudnyi
chudnyi / dropshare-ffmpeg-macos-install.sh
Last active September 14, 2018 13:42
Установка ffmpeg для dropshare через homebrew на macos
brew install ffmpeg
ln -s `which ffmpeg` /usr/local/bin/ffmpeg-static
@chudnyi
chudnyi / styleFactory-minimal-snippet.ts
Last active September 14, 2018 06:37
React styles. Минимальный пример использования styleFactory
const getStyle = styleFactory((props: StyleProps) => {
return EStyleSheet.create({
$mt: `$microTheme.${props.mtName}`,
container: {
...StyleSheet.flatten(props.style),
},
});
});
// Использование в render компонента