Skip to content

Commit 518e1a3

Browse files
committed
chore: migrate example app to Expo
1 parent d374791 commit 518e1a3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+8493
-15695
lines changed

example/.bundle/config

Lines changed: 0 additions & 2 deletions
This file was deleted.

example/.eslintrc.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

example/.gitignore

Lines changed: 31 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,38 @@
1-
# OSX
2-
#
3-
.DS_Store
4-
5-
# Xcode
6-
#
7-
build/
8-
*.pbxuser
9-
!default.pbxuser
10-
*.mode1v3
11-
!default.mode1v3
12-
*.mode2v3
13-
!default.mode2v3
14-
*.perspectivev3
15-
!default.perspectivev3
16-
xcuserdata
17-
*.xccheckout
18-
*.moved-aside
19-
DerivedData
20-
*.hmap
21-
*.ipa
22-
*.xcuserstate
23-
ios/.xcode.env.local
1+
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
242

25-
# Android/IntelliJ
26-
#
27-
build/
28-
.idea
29-
.gradle
30-
local.properties
31-
*.iml
32-
*.hprof
33-
.cxx/
34-
*.keystore
35-
!debug.keystore
36-
37-
# node.js
38-
#
3+
# dependencies
394
node_modules/
40-
npm-debug.log
41-
yarn-error.log
42-
43-
# fastlane
44-
#
45-
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
46-
# screenshots whenever they are needed.
47-
# For more information about the recommended setup visit:
48-
# https://docs.fastlane.tools/best-practices/source-control/
495

50-
**/fastlane/report.xml
51-
**/fastlane/Preview.html
52-
**/fastlane/screenshots
53-
**/fastlane/test_output
6+
# Expo
7+
.expo/
8+
dist/
9+
web-build/
10+
expo-env.d.ts
11+
ios/
12+
android/
13+
14+
# Native
15+
*.orig.*
16+
*.jks
17+
*.p8
18+
*.p12
19+
*.key
20+
*.mobileprovision
21+
22+
# Metro
23+
.metro-health-check*
5424

55-
# Bundle artifact
56-
*.jsbundle
25+
# debug
26+
npm-debug.*
27+
yarn-debug.*
28+
yarn-error.*
5729

58-
# Ruby / CocoaPods
59-
/ios/Pods/
60-
/vendor/bundle/
30+
# macOS
31+
.DS_Store
32+
*.pem
6133

62-
# Temporary files created by Metro to check the health of the file watcher
63-
.metro-health-check*
34+
# local env files
35+
.env*.local
6436

65-
# testing
66-
/coverage
37+
# typescript
38+
*.tsbuildinfo

example/.prettierrc.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

example/.watchmanconfig

Lines changed: 0 additions & 1 deletion
This file was deleted.

example/App.tsx

Lines changed: 122 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -1,142 +1,137 @@
1-
import React, {useEffect, useState} from 'react';
2-
import {Alert, Button, StyleSheet, Switch, Text, View} from 'react-native';
3-
import {FileLogger, LogLevel} from 'react-native-file-logger';
1+
import { useEffect, useState } from "react";
2+
import { Alert, Button, StyleSheet, Switch, Text, View } from "react-native";
3+
import { FileLogger, LogLevel } from "react-native-file-logger";
44

55
export const App = () => {
6-
const [logLevel, setLogLevel] = useState(LogLevel.Debug);
7-
const [enabled, setEnabled] = useState(true);
6+
const [logLevel, setLogLevel] = useState(LogLevel.Debug);
7+
const [enabled, setEnabled] = useState(true);
88

9-
useEffect(() => {
10-
FileLogger.configure({logLevel: LogLevel.Debug}).then(() =>
11-
console.log('File-logger configured'),
12-
);
13-
}, []);
9+
useEffect(() => {
10+
FileLogger.configure({ logLevel: LogLevel.Debug }).then(() => console.log("File-logger configured"));
11+
}, []);
1412

15-
const showLogFilePaths = async () => {
16-
Alert.alert('File paths', (await FileLogger.getLogFilePaths()).join('\n'));
17-
};
13+
const showLogFilePaths = async () => {
14+
Alert.alert("File paths", (await FileLogger.getLogFilePaths()).join("\n"));
15+
};
1816

19-
const changeEnabled = (value: boolean) => {
20-
if (value) {
21-
FileLogger.enableConsoleCapture();
22-
} else {
23-
FileLogger.disableConsoleCapture();
24-
}
25-
setEnabled(value);
26-
};
17+
const changeEnabled = (value: boolean) => {
18+
if (value) {
19+
FileLogger.enableConsoleCapture();
20+
} else {
21+
FileLogger.disableConsoleCapture();
22+
}
23+
setEnabled(value);
24+
};
2725

28-
const changeLogLevel = () => {
29-
const nextLogLevel = (logLevel + 1) % 4;
30-
FileLogger.setLogLevel(nextLogLevel);
31-
setLogLevel(nextLogLevel);
32-
};
26+
const changeLogLevel = () => {
27+
const nextLogLevel = (logLevel + 1) % 4;
28+
FileLogger.setLogLevel(nextLogLevel);
29+
setLogLevel(nextLogLevel);
30+
};
3331

34-
const sendLogFilesByEmail = () => {
35-
FileLogger.sendLogFilesByEmail({
36-
37-
subject: 'Log files',
38-
body: 'Please find attached the log files from your app',
39-
});
40-
};
32+
const sendLogFilesByEmail = () => {
33+
FileLogger.sendLogFilesByEmail({
34+
35+
subject: "Log files",
36+
body: "Please find attached the log files from your app",
37+
});
38+
};
4139

42-
const deleteLogFiles = async () => {
43-
FileLogger.deleteLogFiles();
44-
Alert.alert('Log files deleted');
45-
};
40+
const deleteLogFiles = async () => {
41+
FileLogger.deleteLogFiles();
42+
Alert.alert("Log files deleted");
43+
};
4644

47-
const massiveLogging = () => {
48-
const logHugeAmountOfData = () => {
49-
for (let i = 0; i < 50000; i++) {
50-
FileLogger.debug(
51-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.\
45+
const massiveLogging = () => {
46+
const logHugeAmountOfData = () => {
47+
for (let i = 0; i < 50000; i++) {
48+
FileLogger.debug(
49+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.\
5250
Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae ligula. Pellentesque rhoncus nunc et augue. Integer id felis. Curabitur aliquet pellentesque diam. Integer quis metus vitae elit lobortis egestas. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi vel erat non mauris convallis vehicula. Nulla et sapien. Integer tortor tellus, aliquam faucibus, convallis id, congue eu, quam. Mauris ullamcorper felis vitae erat. Proin feugiat, augue non elementum posuere, metus purus iaculis lectus, et tristique ligula justo vitae magna.\
53-
Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo. Aliquam euismod libero eu enim. Nulla nec felis sed leo placerat imperdiet. Aenean suscipit nulla in justo. Suspendisse cursus rutrum augue. Nulla tincidunt tincidunt mi. Curabitur iaculis, lorem vel rhoncus faucibus, felis magna fermentum augue, et ultricies lacus lorem varius purus. Curabitur eu amet.',
54-
);
55-
}
56-
};
57-
Alert.alert(
58-
'Massive log',
59-
'This will log large amounts of data to test your maximum file size configuration. Your phone may freeze during the operation.',
60-
[
61-
{text: 'Cancel', style: 'cancel'},
62-
{text: 'Continue', onPress: logHugeAmountOfData, style: 'destructive'},
63-
],
64-
{cancelable: true},
65-
);
66-
};
51+
Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo. Aliquam euismod libero eu enim. Nulla nec felis sed leo placerat imperdiet. Aenean suscipit nulla in justo. Suspendisse cursus rutrum augue. Nulla tincidunt tincidunt mi. Curabitur iaculis, lorem vel rhoncus faucibus, felis magna fermentum augue, et ultricies lacus lorem varius purus. Curabitur eu amet."
52+
);
53+
}
54+
};
55+
Alert.alert(
56+
"Massive log",
57+
"This will log large amounts of data to test your maximum file size configuration. Your phone may freeze during the operation.",
58+
[
59+
{ text: "Cancel", style: "cancel" },
60+
{ text: "Continue", onPress: logHugeAmountOfData, style: "destructive" },
61+
],
62+
{ cancelable: true }
63+
);
64+
};
6765

68-
return (
69-
<View style={styles.container}>
70-
<View style={styles.buttonContainer}>
71-
<View style={styles.button}>
72-
<Button
73-
title="Log info"
74-
onPress={() => console.log('Log info', {nested: {data: 123}})}
75-
/>
76-
</View>
77-
<View style={styles.button}>
78-
<Button
79-
title="Log warning"
80-
onPress={() => console.warn('Log warning', {nested: {data: 456}})}
81-
/>
82-
</View>
83-
<View style={styles.button}>
84-
<Button title="Log large data" onPress={() => massiveLogging()} />
85-
</View>
86-
<View style={styles.button}>
87-
<Button title="Change log level" onPress={changeLogLevel} />
88-
</View>
89-
<View style={styles.button}>
90-
<Button title="Show file paths" onPress={showLogFilePaths} />
91-
</View>
92-
<View style={styles.button}>
93-
<Button title="Send files by email" onPress={sendLogFilesByEmail} />
94-
</View>
95-
<View style={styles.button}>
96-
<Button title="Delete files" onPress={deleteLogFiles} />
97-
</View>
98-
</View>
99-
<View style={styles.settingsRow}>
100-
<Text style={styles.settingsLabel}>Enabled</Text>
101-
<Switch value={enabled} onValueChange={changeEnabled} />
102-
</View>
103-
<View style={styles.settingsRow}>
104-
<Text style={styles.settingsLabel}>Log Level</Text>
105-
<Text style={styles.settingsValue}>{LogLevel[logLevel]}</Text>
106-
</View>
107-
</View>
108-
);
66+
return (
67+
<View style={styles.container}>
68+
<View style={styles.buttonContainer}>
69+
<View style={styles.button}>
70+
<Button title="Log info" onPress={() => console.log("Log info", { nested: { data: 123 } })} />
71+
</View>
72+
<View style={styles.button}>
73+
<Button title="Log warning" onPress={() => console.warn("Log warning", { nested: { data: 456 } })} />
74+
</View>
75+
<View style={styles.button}>
76+
<Button title="Log error" onPress={() => console.error("Log error", { nested: { data: 789 } })} />
77+
</View>
78+
<View style={styles.button}>
79+
<Button title="Log large data" onPress={() => massiveLogging()} />
80+
</View>
81+
<View style={styles.button}>
82+
<Button title="Change log level" onPress={changeLogLevel} />
83+
</View>
84+
<View style={styles.button}>
85+
<Button title="Show file paths" onPress={showLogFilePaths} />
86+
</View>
87+
<View style={styles.button}>
88+
<Button title="Send files by email" onPress={sendLogFilesByEmail} />
89+
</View>
90+
<View style={styles.button}>
91+
<Button title="Delete files" onPress={deleteLogFiles} />
92+
</View>
93+
</View>
94+
<View style={styles.settingsRow}>
95+
<Text style={styles.settingsLabel}>Enabled</Text>
96+
<Switch value={enabled} onValueChange={changeEnabled} />
97+
</View>
98+
<View style={styles.settingsRow}>
99+
<Text style={styles.settingsLabel}>Log Level</Text>
100+
<Text style={styles.settingsValue}>{LogLevel[logLevel]}</Text>
101+
</View>
102+
</View>
103+
);
109104
};
110105

111106
const styles = StyleSheet.create({
112-
container: {
113-
flex: 1,
114-
padding: 25,
115-
backgroundColor: '#f5fcff',
116-
},
117-
buttonContainer: {
118-
flex: 1,
119-
justifyContent: 'center',
120-
},
121-
button: {
122-
marginVertical: 6,
123-
},
124-
settingsRow: {
125-
paddingHorizontal: 16,
126-
paddingVertical: 10,
127-
marginBottom: 20,
128-
minHeight: 50,
129-
flexDirection: 'row',
130-
alignItems: 'center',
131-
backgroundColor: '#dff4ff',
132-
borderRadius: 6,
133-
},
134-
settingsLabel: {
135-
flex: 1,
136-
fontWeight: '500',
137-
color: 'black',
138-
},
139-
settingsValue: {
140-
color: 'black',
141-
},
107+
container: {
108+
flex: 1,
109+
padding: 25,
110+
backgroundColor: "#f5fcff",
111+
},
112+
buttonContainer: {
113+
flex: 1,
114+
justifyContent: "center",
115+
},
116+
button: {
117+
marginVertical: 6,
118+
},
119+
settingsRow: {
120+
paddingHorizontal: 16,
121+
paddingVertical: 10,
122+
marginBottom: 20,
123+
minHeight: 50,
124+
flexDirection: "row",
125+
alignItems: "center",
126+
backgroundColor: "#dff4ff",
127+
borderRadius: 6,
128+
},
129+
settingsLabel: {
130+
flex: 1,
131+
fontWeight: "500",
132+
color: "black",
133+
},
134+
settingsValue: {
135+
color: "black",
136+
},
142137
});

example/Gemfile

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)