There are four options for creating a custom blot:
---------------+-------+
| Inline | Block |
---------------+-------+
| Embed |
---------------+-------+
| Text |
| import { TouchableOpacity, TouchableNativeFeedback, Platform } from 'react-native'; | |
| import { createElement } from 'react'; | |
| // use TouchableNativeFeedback for android and TouchableOpacity for ios | |
| // use TouchableOpacity with activeOpacity=1 for both platforms if disabled=true | |
| const Touchable = ({ | |
| disabled, | |
| onPress, | |
| ...props | |
| }) => { |
| import React, { useState, useContext, useRef } from "react"; | |
| import { useOverlayTriggerState } from "@react-stately/overlays"; | |
| import { useButton } from "@react-aria/button"; | |
| import { Modal } from "components/overlays/Modal"; | |
| export function Example() { | |
| let state = useOverlayTriggerState({}); | |
| function onOpen() { | |
| state.open(); |
React 16.4 will introduce a new Profiler component (initially exported as React.unstable_Profiler) for collecting render timing information in order to measure the "cost" of rendering for both sync and async modes.
Profiler timing metrics are significantly faster than those built around the User Timing API, and as such we plan to provide a production+profiling bundle in the future. (The initial release will only log timing information in DEV mode, although the component will still render its children- without timings- in production mode.)
Profiler can be declared anywhere within a React tree to measure the cost of rendering that portion of the tree. For example, a Navigation component and its descendants:
| #delete all the remote tags with the pattern your looking for, ie. DEV- | |
| git tag | grep <pattern> | xargs -n 1 -i% git push origin :refs/tags/% | |
| #delete all your local tags | |
| git tag | xargs -n 1 -i% git tag -d % | |
| #fetch the remote tags which still remain | |
| git fetch |
| # TODO: replace :token, :user, and :repo | |
| curl -H "Authorization: token :token" \ | |
| -H 'Accept: application/vnd.github.everest-preview+json' \ | |
| "https://api.github.com/repos/:user/:repo/dispatches" \ | |
| -d '{"event_type": "awesomeness", "client_payload": {"foo": "bar"}}' |
Memoization is a somewhat fraught topic in the React world, meaning that it's easy to go wrong with it, for example, by [making memo() do nothing][memo-pitfall] by passing in children to a component. The general advice is to avoid memoization until the profiler tells you to optimize, but not all use cases are general, and even in the general use case you can find tricky nuances.
Discussing this topic requires some groundwork about the technical terms, and I'm placing these in once place so that it's easy to skim and skip over:
You may have experienced when dual booting that you need to re-pair your bluetooth devices (ie., Headphones, mouse, keyboard, etc) this usually happens because you have already paired the device with another operating system using the same bluetooth adapter when dual booting (either Linux or Windows).
Some devices cannot handle multiple pairings associated with the same MAC address (ie., bluetooth adapter). As per suggested on the ArchWiki you can fix this by re-pairing the device each time, but there's actually another solution to not do so each time you choose to use your device on a different OS.
Easy, just pair the device on a OS and copy the bluetooth keys generated to the other OS so our device doesn't notice the difference.
| #!/bin/bash | |
| mkdir -p ~/.ssh | |
| # generate new personal ed25519 ssh keys | |
| ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "rob thijssen <rthijssen@gmail.com>" | |
| ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_robtn -C "rob thijssen <rob@rob.tn>" | |
| # generate new host cert authority (host_ca) ed25519 ssh key | |
| # used for signing host keys and creating host certs |
| upload(files) { | |
| const config = { | |
| onUploadProgress: function(progressEvent) { | |
| var percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total) | |
| console.log(percentCompleted) | |
| } | |
| } | |
| let data = new FormData() | |
| data.append('file', files[0]) |