This commit is contained in:
2019-07-05 10:07:30 +02:00
parent 8aec17f1e0
commit 59cb7142e3
11 changed files with 39 additions and 36 deletions

View File

@@ -29,6 +29,14 @@ xhr = new XMLHttpRequest();
xhr.open('GET', 'https://google.com/sdfsfsdfsfdf'); xhr.open('GET', 'https://google.com/sdfsfsdfsfdf');
xhr.send(); xhr.send();
console.log({
hello: {
world: 1,
earth: 2,
},
});
AsyncStorage.setItem('a', 'b'); AsyncStorage.setItem('a', 'b');
AsyncStorage.setItem('b', 'c'); AsyncStorage.setItem('b', 'c');
AsyncStorage.setItem('c', 'd'); AsyncStorage.setItem('c', 'd');
@@ -107,12 +115,12 @@ export default class App extends React.Component {
/> />
<View style={{ height: 10 }} /> <View style={{ height: 10 }} />
</View> </View>
{/* <DevTool <DevTool
style={{ style={{
flex: 1, flex: 1,
}} }}
/> */} />
<DevToolModal /> <DevToolModal storage={AsyncStorage} />
</KeyboardAvoidingView> </KeyboardAvoidingView>
</SafeAreaView> </SafeAreaView>
); );

View File

@@ -3,9 +3,8 @@ module.exports = function(api) {
return { return {
presets: ['babel-preset-expo'], presets: ['babel-preset-expo'],
plugins: [ plugins: [
['module-resolver', { [require.resolve('babel-plugin-module-resolver'), {
alias: { alias: {
//'react-native-debug-console': '../lib',
'@babel/runtime': '../node_modules/@babel/runtime', '@babel/runtime': '../node_modules/@babel/runtime',
} }
}] }]

View File

@@ -11,7 +11,6 @@
"postinstall": "expo-yarn-workspaces postinstall" "postinstall": "expo-yarn-workspaces postinstall"
}, },
"dependencies": { "dependencies": {
"@react-native-community/async-storage": "^1.5.0",
"expo": "^33.0.0", "expo": "^33.0.0",
"react": "16.8.3", "react": "16.8.3",
"react-dom": "^16.8.6", "react-dom": "^16.8.6",
@@ -24,7 +23,7 @@
"babel-preset-expo": "^5.1.1", "babel-preset-expo": "^5.1.1",
"expo-cli": "^2.21.2", "expo-cli": "^2.21.2",
"expo-yarn-workspaces": "^1.2.0", "expo-yarn-workspaces": "^1.2.0",
"module-resolver": "^1.0.0" "babel-plugin-module-resolver": "^3.2.0"
}, },
"private": true "private": true
} }

View File

@@ -11,10 +11,9 @@
"styled-components": "^4.3.1" "styled-components": "^4.3.1"
}, },
"peerDependencies": { "peerDependencies": {
"@react-native-community/async-storage": "^1.5.0",
"prop-types": "^15.6.0", "prop-types": "^15.6.0",
"react": "16.8.3", "react": "^16.8.3",
"react-native": "0.59.8" "react-native": "^0.59.8"
}, },
"devDependencies": {} "devDependencies": {}
} }

View File

@@ -72,11 +72,19 @@ const Data = ({
<Cell left="Method" right={method} /> <Cell left="Method" right={method} />
<Cell left="Url" right={url} /> <Cell left="Url" right={url} />
<CellHeader>Response Headers</CellHeader> <CellHeader>Response Headers</CellHeader>
<Indented><Fixed>{requestHeaders}</Fixed></Indented> <Indented>
{headerInfo && ( <Fixed>
{requestHeaders}
</Fixed>
</Indented>
{headerInfo.length > 0 && (
<Fragment> <Fragment>
<CellHeader>Request Headers</CellHeader> <CellHeader>Request Headers</CellHeader>
<Indented><Fixed selectable={true}>{headerInfo}</Fixed></Indented> <Indented>
<Fixed selectable={true}>
{headerInfo}
</Fixed>
</Indented>
</Fragment> </Fragment>
)} )}
{args[0] && ( {args[0] && (

View File

@@ -13,10 +13,12 @@ const Wrapper = styled.View`
flex: 1; flex: 1;
`; `;
const StorageView = () => ( const StorageView = ({
provider,
}) => (
<State> <State>
{({ selected }, setState) => ( {({ selected }, setState) => (
<Storage> <Storage provider={provider}>
{(data, update, removeItem, clear) => ( {(data, update, removeItem, clear) => (
<Wrapper> <Wrapper>
<Toolbar> <Toolbar>

View File

@@ -23,9 +23,9 @@ const DevTool = ({
includeStackTrace, includeStackTrace,
onClose, onClose,
showNetwork = true, showNetwork = true,
showStorage = true,
showConsole = true, showConsole = true,
additionalTools = [], additionalTools = [],
storage,
}) => { }) => {
const views = []; const views = [];
@@ -45,10 +45,10 @@ const DevTool = ({
}); });
} }
if (showStorage) { if (storage) {
views.push({ views.push({
name: 'Storage', name: 'Storage',
view: <Storage />, view: <Storage provider={storage} />,
}); });
} }

View File

@@ -51,6 +51,7 @@ const Selector = ({
/> />
{options.map((option) => ( {options.map((option) => (
<TouchableOpacity <TouchableOpacity
key={option.name}
onPress={() => { onPress={() => {
if (!multiSelect) { if (!multiSelect) {
options.forEach(o => o.selected = false); options.forEach(o => o.selected = false);

View File

@@ -1,5 +1,4 @@
import { Component } from 'react'; import { Component } from 'react';
import AsyncStorage from '@react-native-community/async-storage';
class Storage extends Component { class Storage extends Component {
constructor() { constructor() {
@@ -17,19 +16,19 @@ class Storage extends Component {
} }
async removeItem(name) { async removeItem(name) {
await AsyncStorage.removeItem(name); await this.props.provider.removeItem(name);
await this.update(); await this.update();
} }
async clear() { async clear() {
await AsyncStorage.clear(); await this.props.provider.clear();
await this.update(); await this.update();
} }
async update() { async update() {
try { try {
const keys = await AsyncStorage.getAllKeys(); const keys = await this.props.provider.getAllKeys();
const values = await Promise.all(keys.map(key => AsyncStorage.getItem(key))); const values = await Promise.all(keys.map(key => this.props.provider.getItem(key)));
const data = {}; const data = {};
for (let i = 0; i < keys.length; i++) { for (let i = 0; i < keys.length; i++) {
const key = keys[i]; const key = keys[i];

View File

@@ -1,8 +1,6 @@
import log from './log'; import log from './log';
import AsyncStorage from '@react-native-community/async-storage';
export const context = { export const context = {
storage: AsyncStorage,
log: (...args) => console.log(...args), log: (...args) => console.log(...args),
clear: log.clear, clear: log.clear,
}; };

View File

@@ -2011,11 +2011,6 @@
universal-user-agent "^2.0.0" universal-user-agent "^2.0.0"
url-template "^2.0.8" url-template "^2.0.8"
"@react-native-community/async-storage@^1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@react-native-community/async-storage/-/async-storage-1.5.0.tgz#647ffcd832272068b0be57332e08d73036ed391f"
integrity sha512-2yE4RzQ5IL+UTPhuMY0ykNRKHf1m90jOnmp8fcDPUun5U97cXlorjI4p66ovDgF0FuOv8ZpiUKvunGy3qqBxwg==
"@react-native-community/cli@^1.2.1": "@react-native-community/cli@^1.2.1":
version "1.10.0" version "1.10.0"
resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-1.10.0.tgz#66e3c9f407763281f7060c034145650bf0d6786c" resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-1.10.0.tgz#66e3c9f407763281f7060c034145650bf0d6786c"
@@ -2884,7 +2879,7 @@ babel-plugin-dynamic-import-node@^2.3.0:
dependencies: dependencies:
object.assign "^4.1.0" object.assign "^4.1.0"
babel-plugin-module-resolver@^3.1.1: babel-plugin-module-resolver@^3.1.1, babel-plugin-module-resolver@^3.2.0:
version "3.2.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7"
integrity sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA== integrity sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==
@@ -9145,11 +9140,6 @@ modify-values@^1.0.0:
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==
module-resolver@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/module-resolver/-/module-resolver-1.0.0.tgz#d412c0b66e08588cd39347a60c3c818bc9119fb5"
integrity sha1-1BLAtm4IWIzTk0emDDyBi8kRn7U=
moment@^2.10.6: moment@^2.10.6:
version "2.24.0" version "2.24.0"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"