Skip to content

Commit eba3e76

Browse files
committed
feat: fix config
1 parent d44b413 commit eba3e76

File tree

15 files changed

+83
-76
lines changed

15 files changed

+83
-76
lines changed

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,12 @@ Below you'll find information about performing common tasks.
6363
### <mark>[!] Note after installation</mark>
6464

6565
> - _Copy all installed files and folders into your GIT project._
66-
> - _Copy **.gitignore** file from **THIS REPOSITORY** into your GIT project (**.gitignore** is removed while `npx init`)_
66+
> - _Copy **.gitignore** file from **THIS REPOSITORY** into your GIT project (**.gitignore** is removed while `npx react-native init`)_
67+
> - _Duplicate file **.env.development** from folder **environment** to your root project. Rename to **.env** https://prnt.sc/K23PXoWJ19tn_
6768
6869
### Some manual setups
6970

70-
1. ~~Setup react-native config following guide (deprecated - need upgrade): https://docs.google.com/document/d/1sPg4N7iXEgD_NzbXBRD_SzHPo4p48uJIgG_fC9hK48s |~~
71+
1. ~~Setup react-native config (Amela-style) following guide (deprecated - need upgrade): https://docs.google.com/document/d/1sPg4N7iXEgD_NzbXBRD_SzHPo4p48uJIgG_fC9hK48s |~~
7172
2. Setup modalize following guide: https://jeremybarbet.github.io/react-native-modalize/#/INSTALLATION
7273

7374
---
@@ -107,7 +108,7 @@ Show list commit types to choose and execute commits (using commit-lint).
107108
├── App.tsx
108109
├── Gemfile
109110
├── Gemfile.lock
110-
├── ReactotronConfig.tsx
111+
├── reactotron.config.js
111112
├── __tests__
112113
│   └── App.test.tsx
113114
├── app.json

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-template-amela",
3-
"version": "1.1.1",
3+
"version": "1.1.2",
44
"description": "Amela's React Native Template",
55
"repository": "[email protected]:amela-technology/react-native-templet-v1.git",
66
"author": "Amela Technology <[email protected]>",

template/android/app/build.gradle

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@ apply plugin: "org.jetbrains.kotlin.android"
33
apply plugin: "com.facebook.react"
44

55
project.ext.envConfigFiles = [
6-
devdebug: "./environment/.env.development",
7-
devrelease: "./environment/.env.development",
8-
stagingdebug: "./environment/.env.staging",
9-
stagingrelease: "./environment/.env.staging",
10-
productdebug: "./environment/.env.production",
11-
productrelease: "./environment/.env.production",
6+
dev: "./environment/.env.development",
7+
staging: "./environment/.env.staging",
8+
product: "./environment/.env.production",
129
]
1310

1411
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
@@ -93,7 +90,7 @@ android {
9390
versionCode Integer.valueOf(env.get("ANDROID_APP_VERSION_CODE"))
9491
multiDexEnabled true
9592
versionName env.get("ANDROID_APP_VERSION_NAME")
96-
resValue "string", "build_config_package", env.get("ANDROID_APP_ID")
93+
resValue "string", "build_config_package", "com.demoapp"
9794
}
9895
signingConfigs {
9996
debug {
@@ -132,6 +129,19 @@ android {
132129
minifyEnabled enableProguardInReleaseBuilds
133130
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
134131
}
132+
applicationVariants.all{
133+
variant ->
134+
variant.outputs.each{
135+
// Below line we are setting a name for our apk.
136+
output->
137+
project.ext { appName = 'demoapp' }
138+
def formattedDate = new Date().format('yyyyMMdd-HHmm')
139+
def newName = output.outputFile.name
140+
def versionName = env.get("ANDROID_APP_VERSION_NAME")
141+
newName = newName.replace("app-", "$project.ext.appName-$formattedDate-$versionName-")
142+
output.outputFileName = newName
143+
}
144+
}
135145
}
136146
flavorDimensions "environment"
137147
productFlavors {

template/ios/DemoApp.xcodeproj/project.pbxproj

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
1313
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
1414
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
15-
1F2E14782B2A9A9500F3DD05 /* Config.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 1F2E14772B2A9A9500F3DD05 /* Config.xcconfig */; };
16-
1F2E14792B2A9A9500F3DD05 /* Config.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 1F2E14772B2A9A9500F3DD05 /* Config.xcconfig */; };
1715
7699B88040F8A987B510C191 /* libPods-DemoApp-DemoAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-DemoApp-DemoAppTests.a */; };
1816
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
1917
/* End PBXBuildFile section */
@@ -203,7 +201,8 @@
203201
83CBB9F71A601CBA00E9B192 /* Project object */ = {
204202
isa = PBXProject;
205203
attributes = {
206-
LastUpgradeCheck = 1210;
204+
BuildIndependentTargetsInParallel = YES;
205+
LastUpgradeCheck = 1430;
207206
TargetAttributes = {
208207
00E356ED1AD99517003FC87E = {
209208
CreatedOnToolsVersion = 6.2;
@@ -238,7 +237,6 @@
238237
isa = PBXResourcesBuildPhase;
239238
buildActionMask = 2147483647;
240239
files = (
241-
1F2E14792B2A9A9500F3DD05 /* Config.xcconfig in Resources */,
242240
);
243241
runOnlyForDeploymentPostprocessing = 0;
244242
};
@@ -247,7 +245,6 @@
247245
buildActionMask = 2147483647;
248246
files = (
249247
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
250-
1F2E14782B2A9A9500F3DD05 /* Config.xcconfig in Resources */,
251248
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
252249
);
253250
runOnlyForDeploymentPostprocessing = 0;

template/ios/DemoApp.xcodeproj/xcshareddata/xcschemes/DemoApp (dev).xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1210"
3+
LastUpgradeVersion = "1430"
44
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"

template/ios/DemoApp.xcodeproj/xcshareddata/xcschemes/DemoApp (production).xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1210"
3+
LastUpgradeVersion = "1430"
44
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"

template/ios/DemoApp.xcodeproj/xcshareddata/xcschemes/DemoApp (staging).xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1210"
3+
LastUpgradeVersion = "1430"
44
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"

template/ios/DemoApp.xcodeproj/xcshareddata/xcschemes/DemoApp.xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1210"
3+
LastUpgradeVersion = "1430"
44
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"

template/package.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515
"lint-fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix",
1616
"lint:husky": "eslint $(git diff --staged --name-only | grep -E '(.js$|.ts$|.tsx$)')",
1717
"get-tree": "tree -I 'android|ios|node_modules|vendor|bundle'",
18-
"android-run-debug-develop": "react-native run-android --no-jetifier --variant=devDebug --appId 'com.amela.vn.dev'",
19-
"android-run-debug-staging": "react-native run-android --no-jetifier --variant=stagingDebug --appId 'com.amela.vn.stg'",
20-
"android-run-debug-product": "react-native run-android --no-jetifier --variant=productDebug --appId 'com.amela.vn.prod'",
21-
"android-run-release-develop": "cd android && rm -rf build && rm -rf android/build && cd .. && react-native run-android --no-jetifier --variant=devRelease --appId 'com.amela.vn.dev'",
22-
"android-run-release-staging": "react-native run-android --no-jetifier --variant=stagingRelease --appId 'com.amela.vn.stg'",
23-
"android-run-release-product": "react-native run-android --no-jetifier --variant=productRelease --appId 'com.amela.vn.prod'",
24-
"android-build-apk-develop": "rm -rf build && rm -rf android/build && export ENVFILE=.env.development && cd android && ./gradlew assembleDevRelease && cd ..",
25-
"android-build-apk-staging": "rm -rf build && rm -rf android/build && export ENVFILE=.env.staging && cd android && ./gradlew assembleStagingRelease && cd ..",
26-
"android-build-apk-product": "rm -rf build && rm -rf android/build && export ENVFILE=.env.production && cd android && ./gradlew clean && ./gradlew assembleProductRelease && cd ..",
27-
"android-build-aab-product": "rm -rf build && rm -rf android/build && export ENVFILE=.env.production && cd android && ./gradlew clean && ./gradlew bundleProductRelease && cd ..",
18+
"android-run-debug-develop": "cd android && ./gradlew clean && cd .. && react-native run-android --mode=devDebug",
19+
"android-run-debug-staging": "cd android && ./gradlew clean && cd .. && react-native run-android --mode=stagingDebug",
20+
"android-run-debug-product": "cd android && ./gradlew clean && cd .. && react-native run-android --mode=productDebug",
21+
"android-run-release-develop": "cd android && ./gradlew clean && rm -rf build && rm -rf android/build && cd .. && react-native run-android --mode=devRelease",
22+
"android-run-release-staging": "cd android && ./gradlew clean && rm -rf build && rm -rf android/build && cd .. &&react-native run-android --mode=stagingRelease",
23+
"android-run-release-product": "cd android && ./gradlew clean && rm -rf build && rm -rf android/build && cd .. &&react-native run-android --mode=productRelease",
24+
"android-build-apk-develop": "rm -rf build && rm -rf android/build && export ENVFILE=./environment/.env.development && cd android && ./gradlew clean && ./gradlew assembleDevRelease && cd ..",
25+
"android-build-apk-staging": "rm -rf build && rm -rf android/build && export ENVFILE=./environment/.env.staging && cd android && ./gradlew clean && ./gradlew assembleStagingRelease && cd ..",
26+
"android-build-apk-product": "rm -rf build && rm -rf android/build && export ENVFILE=./environment/.env.production && cd android && ./gradlew clean && ./gradlew assembleProductRelease && cd ..",
27+
"android-build-aab-product": "rm -rf build && rm -rf android/build && export ENVFILE=./environment/.env.production && cd android && ./gradlew clean && ./gradlew bundleProductRelease && cd ..",
2828
"open-folder-apk": "open ./android/app/build/outputs/apk",
2929
"open-folder-aab": "open ./android/app/build/outputs/bundle",
3030
"commit": "cz",
@@ -85,8 +85,8 @@
8585
"react-native-svg-charts": "5.4.0",
8686
"react-native-webview": "13.6.3",
8787
"react-redux": "9.0.4",
88-
"reactotron-react-native": "5.0.4",
89-
"reactotron-redux": "3.1.4",
88+
"reactotron-react-native": "5.0.3",
89+
"reactotron-redux": "3.1.3",
9090
"redux-logger": "3.0.6",
9191
"redux-persist": "6.0.0",
9292
"redux-saga": "1.2.3",

template/react-native.config.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
module.exports = {
2-
project: {
3-
ios: {
4-
automaticPodsInstallation: true
5-
}
6-
}
7-
}
2+
assets: ['./src/assets/fonts'],
3+
project: {
4+
ios: {
5+
automaticPodsInstallation: true,
6+
},
7+
},
8+
};
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
/* eslint-disable import/no-extraneous-dependencies */
21
import Reactotron from 'reactotron-react-native';
32
import AsyncStorage from '@react-native-async-storage/async-storage';
43
import { reactotronRedux } from 'reactotron-redux';
54

6-
const reactotron = Reactotron.setAsyncStorageHandler(AsyncStorage) // AsyncStorage would either come from `react-native` or `@react-native-async-storage/async-storage` depending on where you get it from
7-
.configure({})
5+
const reactotron = Reactotron.setAsyncStorageHandler(AsyncStorage)
6+
.configure()
87
.useReactNative()
9-
.use(reactotronRedux() as any)
8+
.use(reactotronRedux())
109
.connect();
1110

1211
export default reactotron;

template/src/App.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { FunctionComponent, useEffect } from 'react';
2-
import { ActivityIndicator, LogBox, View } from 'react-native';
2+
import { ActivityIndicator, LogBox } from 'react-native';
33
import { Provider } from 'react-redux';
44
import { PersistGate } from 'redux-persist/integration/react';
55
import { persistor, store } from 'app-redux/store';
@@ -14,7 +14,7 @@ import { GestureHandlerRootView } from 'react-native-gesture-handler';
1414
LogBox.ignoreLogs(['Require cycle:', 'ViewPropTypes']);
1515

1616
if (__DEV__) {
17-
import('../ReactotronConfig').then(() => console.log('Reactotron Configured'));
17+
import('../reactotron.config').then(() => console.log('Reactotron Configured'));
1818
}
1919

2020
const App: FunctionComponent = () => {

template/src/app-redux/store.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { configureStore } from '@reduxjs/toolkit';
22
import { persistStore, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER } from 'redux-persist';
33
import logger from 'redux-logger';
44
import createSagaMiddleware from 'redux-saga';
5-
import Reactotron from '../../ReactotronConfig';
5+
import Reactotron from '../../reactotron.config';
66
import rootSaga from './sagas/rootSaga';
77

88
import resourceReducer from './slices/resourceSlice';

template/src/utilities/i18next.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ i18next.use(initReactI18next).init({
4646
translation: jp,
4747
},
4848
},
49+
compatibilityJSON: 'v3'
4950
});
5051

5152
export const loadLocaleLanguage = () => {

template/yarn.lock

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7464,10 +7464,10 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6:
74647464
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
74657465
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
74667466

7467-
mitt@^3.0.1:
7468-
version "3.0.1"
7469-
resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
7470-
integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
7467+
mitt@1.1.3:
7468+
version "1.1.3"
7469+
resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.1.3.tgz#528c506238a05dce11cd914a741ea2cc332da9b8"
7470+
integrity sha512-mUDCnVNsAi+eD6qA0HkRkwYczbLHJ49z17BGe2PYRhZL4wpZUFZGJHU7/5tmvohoma+Hdn0Vh/oJTiPEmgSruA==
74717471

74727472
mkdirp@^0.5.1:
74737473
version "0.5.6"
@@ -8166,13 +8166,12 @@ qs@^6.11.0, qs@^6.7.0:
81668166
dependencies:
81678167
side-channel "^1.0.4"
81688168

8169-
query-string@6.14.1:
8170-
version "6.14.1"
8171-
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a"
8172-
integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==
8169+
query-string@6.10.1:
8170+
version "6.10.1"
8171+
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.10.1.tgz#30b3505f6fca741d5ae541964d1b3ae9dc2a0de8"
8172+
integrity sha512-SHTUV6gDlgMXg/AQUuLpTiBtW/etZ9JT6k6RCtCyqADquApLX0Aq5oK/s5UeTUAWBG50IExjIr587GqfXRfM4A==
81738173
dependencies:
81748174
decode-uri-component "^0.2.0"
8175-
filter-obj "^1.1.0"
81768175
split-on-first "^1.0.0"
81778176
strict-uri-encode "^2.0.0"
81788177

@@ -8572,33 +8571,27 @@ [email protected]:
85728571
dependencies:
85738572
loose-envify "^1.1.0"
85748573

8575-
8576-
version "2.8.11"
8577-
resolved "https://registry.yarnpkg.com/reactotron-core-client/-/reactotron-core-client-2.8.11.tgz#93c7d9c0038704c22b0e9d1e6de54e1578051442"
8578-
integrity sha512-zoqKrAqWjTPpa1s1AtVZPZItYE8Kjgs99v9gcKMCW2Ejcba9fYOoRCwu0zqoHU8iWyBzJsOWVai0FdRVRUHf8Q==
8579-
dependencies:
8580-
reactotron-core-contract "0.1.1"
8581-
8582-
8583-
version "0.1.1"
8584-
resolved "https://registry.yarnpkg.com/reactotron-core-contract/-/reactotron-core-contract-0.1.1.tgz#3fc0e72e17a71c830c752985b5d2a5dd3df79166"
8585-
integrity sha512-NmmojG6Pz97NJe8ov0oZgIxxaaEkXsVAiFOeFTI4QH03qMqAs6d28nUd5bTrKLipxWy5rPr4PXITE7AHdT0kaw==
8574+
8575+
version "2.8.10"
8576+
resolved "https://registry.yarnpkg.com/reactotron-core-client/-/reactotron-core-client-2.8.10.tgz#798f2a7aa9fd7e18e7a510531a613e8ae3008eb0"
8577+
integrity sha512-SYRO4OCutJzfWMnaULUGVyETZnMDCU5ECNflXyM3Z5Gnfxp/wV6d7jYonhfxHdpU/aGb4Eg15C22myOCXSu6HQ==
85868578

8587-
8588-
version "5.0.4"
8589-
resolved "https://registry.yarnpkg.com/reactotron-react-native/-/reactotron-react-native-5.0.4.tgz#4bff2e74f2a99bf4963db130a6b392036bd90130"
8590-
integrity sha512-Ho5PXLtF4GirFzhjdzbVgRk9Idf3woK5c9Cx1lVdYMVb96kzUMlzn2qCD7H6t/yjIFik9LM/3ncWWNHacVySNg==
8579+
8580+
version "5.0.3"
8581+
resolved "https://registry.yarnpkg.com/reactotron-react-native/-/reactotron-react-native-5.0.3.tgz#5ab884f33e6ffa0437b8b0f4d93cabb5acb7da24"
8582+
integrity sha512-uUQ074uw3I9X/pc7FBgrrwrFzfwXDKlxzuekNjzspZz9Y0qVLX1cAm9GTC0ZPsZRvY5wDPY/Il7XfV1YeVSDxA==
85918583
dependencies:
8592-
mitt "^3.0.1"
8593-
query-string "6.14.1"
8594-
reactotron-core-client "2.8.11"
8584+
mitt "1.1.3"
8585+
query-string "6.10.1"
8586+
reactotron-core-client "2.8.10"
8587+
rn-host-detect "1.2.0"
85958588
optionalDependencies:
85968589
react-native-flipper "^0.164.0"
85978590

8598-
8599-
version "3.1.4"
8600-
resolved "https://registry.yarnpkg.com/reactotron-redux/-/reactotron-redux-3.1.4.tgz#8dc8101f508eb33f57033613da14a6fd0ba77777"
8601-
integrity sha512-UaEi1J4FwUqWWOv6QjLz8XBVUhC8JCo1e6PQJpWOteU45yIhWCCYZH2BZgt7ALPPkoOxG/hMBL01wmGy2rYRTw==
8591+
8592+
version "3.1.3"
8593+
resolved "https://registry.yarnpkg.com/reactotron-redux/-/reactotron-redux-3.1.3.tgz#ec61ef7a7e1dffda766e534f858f3bb854396d53"
8594+
integrity sha512-8QVEbr2R4GtFlXwSe0uK5bkuz3xRWZx8Nwi2g9e6cRbpkesTfycWVK5Oyn+wR9XOTt894WSn8CAH2TB6dVuDyg==
86028595

86038596
read-pkg-up@^7.0.1:
86048597
version "7.0.1"
@@ -8935,6 +8928,11 @@ rimraf@~2.6.2:
89358928
dependencies:
89368929
glob "^7.1.3"
89378930

8931+
8932+
version "1.2.0"
8933+
resolved "https://registry.yarnpkg.com/rn-host-detect/-/rn-host-detect-1.2.0.tgz#8b0396fc05631ec60c1cb8789e5070cdb04d0da0"
8934+
integrity sha512-btNg5kzHcjZZ7t7mvvV/4wNJ9e3MPgrWivkRgWURzXL0JJ0pwWlU4zrbmdlz3HHzHOxhBhHB4D+/dbMFfu4/4A==
8935+
89388936
roarr@^2.15.3:
89398937
version "2.15.4"
89408938
resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"

0 commit comments

Comments
 (0)