rn-server-logger is a React-Native module designed for tracking server traffic, presenting it in the app, and exporting it, primarily for testing purposes. This module uses axios, moment, react-native-fs, react-native-share, and react-native-shake as its dependencies.
yarn add rn-server-logger
Important note: Make sure to use react-native-shake version 5.1.1 without a caret (^) in the dependency.
add the dependency to your package.json file:
yarn add react-native-shake@5.1.1 react-native-fs react-native-share axios-inherit moment && cd ios && pod install && cd ..
#### 2. Add the following code at the top of the file, after importing axios, before the first usage of axios.create:
```shell
const axiosInherit = require('axios-inherit');
axiosInherit(axios);
3.Add the ServerLogger component to your App component and make sure to only render it in the test environment, for example:
export const serverLoggerRef = React.createRef<{printHelper: (message: string) => void}>()
const App = () => {
return (
<View style={styles.container}>
<Provider store={store}>
<NavigationContainer>
<Root />
</NavigationContainer>
</Provider>
{TEST_ENV_FLAG && <ServerLogger ref={serverLoggerRef} />}
<Button onPress={() => {
serverLoggerRef?.current?.printHelper('message');
}} />
</View>
);
};
The renderLogTypeButtons function has been refactored to a new custom hook named useLogTypeButtons, which returns an array of JSX elements representing the log type buttons.
The filteredLogs function has been refactored to a new custom hook named useFilteredLogs, which returns an array of log objects that match the search text and log type selected by the user.
The highlightedText function has been updated to use the useMemo hook for performance optimization.