16 | Counter: {counter}
17 |
18 |
19 |
43 | #{issue.number} {' '} 44 | {issue.title} {' '} 45 | {issue.state} 46 |
47 | ))} 48 | > 49 | ) 50 | } 51 | } 52 | 53 | export default Issues -------------------------------------------------------------------------------- /Chapter03/1-react-hooks/src/Issues2.tsx: -------------------------------------------------------------------------------- 1 | // Dependencies 2 | import React, { FC, useState, useEffect } from 'react' 3 | import axios from 'axios' 4 | 5 | // Types 6 | type Issue = { 7 | number: number 8 | title: string 9 | url: string 10 | state: string 11 | } 12 | 13 | const Issues: FC = () => { 14 | // The useState hook replace this.setState 15 | const [issues, setIssues] = useState34 | #{issue.number} {' '} 35 | {issue.title} {' '} 36 | {issue.state} 37 |
38 | ))} 39 | > 40 | ) 41 | } 42 | 43 | export default Issues -------------------------------------------------------------------------------- /Chapter03/1-react-hooks/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /Chapter03/1-react-hooks/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 |17 | #{issue.number} {' '} 18 | {issue.title} {' '} 19 | {issue.state} 20 |
21 | ))} 22 | > 23 | ) 24 | } 25 | 26 | export default Issues -------------------------------------------------------------------------------- /Chapter06/context-api/src/contexts/Issue.tsx: -------------------------------------------------------------------------------- 1 | import { FC, createContext, useState, useEffect, ReactElement, useCallback } from 'react' 2 | import axios from 'axios' 3 | 4 | export type Issue = { 5 | number: number 6 | title: string 7 | url: string 8 | state: string 9 | } 10 | 11 | interface Issue_Context { 12 | issues: Issue[] 13 | url: string 14 | } 15 | 16 | interface Props { 17 | children: ReactElement 18 | url: string 19 | } 20 | 21 | export const IssueContext = createContext