Standard escape codes are prefixed with Escape:
- Ctrl-Key:
^[ - Octal:
\033 - Unicode:
\u001b - Hexadecimal:
\x1B - Decimal:
27
| import React, { useState, useEffect, useMemo } from 'react' | |
| import { Machine } from 'xstate' | |
| import { interpret } from 'xstate/lib/interpreter' | |
| const toggleMachine = Machine({ | |
| id: 'toggle', | |
| initial: 'inactive', | |
| states: { | |
| inactive: { | |
| on: { TOGGLE: 'active' } |
Note:
When this guide is more complete, the plan is to move it into Prepack documentation.
For now I put it out as a gist to gather initial feedback.
If you're building JavaScript apps, you might already be familiar with some tools that compile JavaScript code to equivalent JavaScript code:
| /** | |
| * return the mid value among x, y, and z | |
| * @param x | |
| * @param y | |
| * @param z | |
| * @param compare | |
| * @returns {Promise.<*>} | |
| */ | |
| async function getPivot(x, y, z, compare) { | |
| if (await compare(x, y) < 0) { |
First things first, I want to use ag to search through my project files. Coming from fzf, I like to have two bindings for this -- one that respects my projects .gitignore and one that does not. The latter is helpful if I want to examine a built file or look at a node_module dependency while working on my js project.
I use an alias for file_rec source to toggle the -u flag on ag. Now, <C-P> searches in my git files, and <C-O> searches everything.
" denite file search (c-p uses gitignore, c-o looks at everything)
map <C-P> :DeniteProjectDir -buffer-name=git -direction=top file_rec/git<CR>
map :DeniteProjectDir -buffer-name=files -direction=top file_rec
type StringBool = "true"|"false";
interface AnyNumber { prev?: any, isZero: StringBool };
interface PositiveNumber { prev: any, isZero: "false" };
type IsZero<TNumber extends AnyNumber> = TNumber["isZero"];
type Next<TNumber extends AnyNumber> = { prev: TNumber, isZero: "false" };
type Prev<TNumber extends PositiveNumber> = TNumber["prev"];| // getComponent is a function that returns a promise for a component | |
| // It will not be called until the first mount | |
| function asyncComponent(getComponent) { | |
| return class AsyncComponent extends React.Component { | |
| static Component = null; | |
| state = { Component: AsyncComponent.Component }; | |
| componentWillMount() { | |
| if (!this.state.Component) { | |
| getComponent().then(Component => { |
| <!-- | |
| Example 1: Using IF ELSE logic | |
| Works with Outlook (Desktop)?: Yes | |
| Works with Outlook.com?: No | |
| When using IF ELSE logic, Outlook.com will remove content in both conditionals, which is problematic. | |
| --> | |
| <!--[if mso]> | |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| license: gpl-3.0 | |
| height: 800 |