Skip to content

Instantly share code, notes, and snippets.

View yuschick's full-sized avatar

Daniel Yuschick yuschick

View GitHub Profile
@yuschick
yuschick / app-container-two.js
Last active November 9, 2017 06:59
Accessible Web Apps with React, TypeScript & Ally.js
interface AppState {
showDialog: boolean;
}
class App extends React.Component<{}, AppState> {
state: AppState;
constructor(props: {}) {
super(props);
@yuschick
yuschick / app-container-one.js
Last active November 9, 2017 07:00
Accessible Web Apps with React, TypeScript & Ally.js
interface AppState {
showDialog: boolean;
}
class App extends React.Component<{}, AppState> {
state: AppState;
constructor(props: {}) {
super(props);
@yuschick
yuschick / dialog-component-one.js
Last active November 9, 2017 11:25
Accessible Web Apps with React, TypeScript & Ally.js
interface Props {
children: object;
title: string;
description: string;
close(): void;
}
class Dialog extends React.Component<Props> {
dialog: HTMLElement | null;
@yuschick
yuschick / app-container-three.js
Last active November 9, 2017 07:00
Accessible Web Apps with React, TypeScript & Ally.js
interface AppState {
showDialog: boolean;
}
class App extends React.Component<{}, AppState> {
state: AppState;
constructor(props: {}) {
super(props);
@yuschick
yuschick / dialog-component-two.js
Last active November 9, 2017 11:24
Accessible Web Apps with React, TypeScript & Ally.js
interface Handle {
disengage(): void;
}
class Dialog extends React.Component<Props, {}> {
dialog: HTMLElement | null;
disabledHandle: Handle;
componentDidMount() {
this.disabledHandle = Disabled({
interface Handle {
disengage(): void;
}
class Dialog extends React.Component<Props> {
dialog: HTMLElement | null;
disabledHandle: Handle;
focusHandle: Handle;
componentDidMount() {
@yuschick
yuschick / dialog-component-four.js
Last active November 9, 2017 11:27
Accessible Web Apps with React, TypeScript & Ally.js
interface Handle {
disengage(): void;
}
class Dialog extends React.Component<Props> {
dialog: HTMLElement | null;
disabledHandle: Handle;
focusHandle: Handle;
componentDidMount() {
@yuschick
yuschick / dialog-component-five.js
Last active November 9, 2017 11:28
Accessible Web Apps with React, TypeScript & Ally.js
interface Handle {
disengage(): void;
}
class Dialog extends React.Component<Props> {
dialog: HTMLElement | null;
disabledHandle: Handle;
focusHandle: Handle;
keyHandle: Handle;
@yuschick
yuschick / dialog-component-six.js
Last active November 9, 2017 11:29
Accessible Web Apps with React, TypeScript & Ally.js
class Dialog extends React.Component<Props> {
dialog: HTMLElement | null;
disabledHandle: Handle;
focusHandle: Handle;
keyHandle: Handle;
focusedElementBeforeDialogOpened: HTMLInputElement | HTMLButtonElement;
componentDidMount() {
if (document.activeElement instanceof HTMLInputElement ||
document.activeElement instanceof HTMLButtonElement) {
@yuschick
yuschick / dialog-styles.css
Last active November 9, 2017 12:07
Accessible Web Apps with React, TypeScript & Ally.js
.popup-outer-container {
align-items: center;
background: rgba(0, 0, 0, 0.2);
display: flex;
height: 100vh;
justify-content: center;
padding: 10px;
position: absolute;
width: 100%;
z-index: 10;