diff --git a/.eslintrc.json b/.eslintrc.json index 915b9c1..d76e6a3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -17,6 +17,15 @@ "linebreak-style": 0, "import/no-extraneous-dependencies": ["error", { "devDependencies": true }], "react/prop-types": ["error", { "ignore": ["navigation"] }], - "import/prefer-default-export": "off" + "import/prefer-default-export": "off", + "object-curly-newline": [ + "error", + { + "ObjectExpression": "always", + "ObjectPattern": { "multiline": true }, + "ImportDeclaration": "never", + "ExportDeclaration": { "multiline": true, "minProperties": 3 } + } + ] } } diff --git a/src/components/Button.jsx b/src/components/Button.jsx index 4343de7..d848fe0 100644 --- a/src/components/Button.jsx +++ b/src/components/Button.jsx @@ -1,11 +1,11 @@ -import { func, string } from 'prop-types'; +import { func, shape, string } from 'prop-types'; import React from 'react'; import { TouchableOpacity, StyleSheet, Text } from 'react-native'; function Button(props) { - const { label, onPress } = props; + const { label, onPress, style } = props; return ( - + {label} ); @@ -13,9 +13,11 @@ function Button(props) { Button.propTypes = { label: string.isRequired, onPress: func, + style: shape(), }; Button.defaultProps = { onPress: null, + style: null, }; const styles = StyleSheet.create({ buttonContainer: { diff --git a/src/screens/MemoDetailScreen.jsx b/src/screens/MemoDetailScreen.jsx index 888d8d2..8afeb5d 100644 --- a/src/screens/MemoDetailScreen.jsx +++ b/src/screens/MemoDetailScreen.jsx @@ -1,6 +1,5 @@ import React, { useEffect, useState } from 'react'; import { shape, string } from 'prop-types'; -// eslint-disable-next-line object-curly-newline import { View, Text, ScrollView, StyleSheet } from 'react-native'; import firebase from 'firebase'; diff --git a/src/screens/MemoListScreen.jsx b/src/screens/MemoListScreen.jsx index 779abe6..52ea7bf 100644 --- a/src/screens/MemoListScreen.jsx +++ b/src/screens/MemoListScreen.jsx @@ -1,9 +1,10 @@ import React, { useEffect, useState } from 'react'; -import { View, StyleSheet, Alert } from 'react-native'; +import { View, StyleSheet, Alert, Text } from 'react-native'; import firebase from 'firebase'; import CircleButton from '../components/CircleButton'; import LogOutButton from '../components/LogOutButton'; import MemoList from '../components/MemoList'; +import Button from '../components/Button'; function MemoListScreen(props) { const { navigation } = props; @@ -43,6 +44,22 @@ function MemoListScreen(props) { } return unscribe; }, []); + if (memos.length === 0) { + return ( + + + 最初のメモを作成しよう! +