@ronas-it/nx-generators 0.4.1 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/generators.json +5 -0
- package/package.json +1 -1
- package/src/generators/code-checks/generator.js +2 -15
- package/src/generators/code-checks/generator.js.map +1 -1
- package/src/generators/expo-app/app-files/app/_layout.tsx.template +43 -0
- package/src/generators/expo-app/{files → app-files}/app/index.tsx.template +3 -2
- package/src/generators/expo-app/app-files/jest.config.ts.template +20 -0
- package/src/generators/expo-app/app-files/test-setup.ts.template +1 -0
- package/src/generators/expo-app/app-files/tsconfig.app.json.template +10 -0
- package/src/generators/expo-app/generator.js +18 -17
- package/src/generators/expo-app/generator.js.map +1 -1
- package/src/generators/next-app/files/app/[locale]/layout.tsx.template +1 -1
- package/src/generators/next-app/files/app/[locale]/page.tsx.template +2 -2
- package/src/generators/next-app/files/app/[locale]/providers.tsx.template +1 -1
- package/src/generators/next-app/files/middleware.ts.template +1 -1
- package/src/generators/next-app/generator.js +8 -4
- package/src/generators/next-app/generator.js.map +1 -1
- package/src/generators/repo-config/generator.js +2 -1
- package/src/generators/repo-config/generator.js.map +1 -1
- package/src/shared/dependencies.d.ts +66 -0
- package/src/shared/dependencies.js +72 -0
- package/src/shared/dependencies.js.map +1 -0
- package/src/shared/enums/base-generator-type.d.ts +4 -0
- package/src/shared/enums/base-generator-type.js +9 -0
- package/src/shared/enums/base-generator-type.js.map +1 -0
- package/src/shared/enums/index.d.ts +1 -0
- package/src/shared/enums/index.js +5 -0
- package/src/shared/enums/index.js.map +1 -0
- package/src/shared/generators/api-client/generator.d.ts +6 -0
- package/src/shared/generators/api-client/generator.js +35 -0
- package/src/shared/generators/api-client/generator.js.map +1 -0
- package/src/shared/generators/api-client/index.d.ts +1 -0
- package/src/shared/generators/api-client/index.js +5 -0
- package/src/shared/generators/api-client/index.js.map +1 -0
- package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/configuration.ts.template +15 -0
- package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/index.ts.template +3 -0
- package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/service.ts.template +4 -0
- package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/utils/api-creator.ts.template +6 -0
- package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/utils/base-query.ts.template +6 -0
- package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/utils/index.ts.template +2 -0
- package/src/shared/generators/app-env/generator.d.ts +6 -0
- package/src/shared/generators/app-env/generator.js +25 -0
- package/src/shared/generators/app-env/generator.js.map +1 -0
- package/src/shared/generators/app-env/index.d.ts +1 -0
- package/src/shared/generators/app-env/index.js +5 -0
- package/src/shared/generators/app-env/index.js.map +1 -0
- package/src/shared/generators/app-env/lib-files/shared/utils/app-env/src/app-env.ts.template +5 -0
- package/src/shared/generators/app-env/lib-files/shared/utils/app-env/src/env.d.ts.template +9 -0
- package/src/shared/generators/app-env/lib-files/shared/utils/app-env/src/env.js.template +28 -0
- package/src/shared/generators/app-env/lib-files/shared/utils/app-env/src/index.ts.template +3 -0
- package/src/shared/generators/auth/generator.d.ts +6 -0
- package/src/shared/generators/auth/generator.js +36 -0
- package/src/shared/generators/auth/generator.js.map +1 -0
- package/src/shared/generators/auth/index.d.ts +1 -0
- package/src/shared/generators/auth/index.js +5 -0
- package/src/shared/generators/auth/index.js.map +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/index.ts.template +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/api.ts.template +78 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/index.ts.template +2 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/forgot-password-request.ts.template +10 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/index.ts.template +6 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/login-request.ts.template +13 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/login-response.ts.template +15 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/refresh-token-response.ts.template +16 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/register-request.ts.template +19 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/restore-password-request.ts.template +14 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/index.ts.template +3 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/profile/api.ts.template +52 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/profile/config.ts.template +7 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/profile/index.ts.template +2 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/profile/models/get-profile-request.ts.template +9 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/profile/models/index.ts.template +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/profile/types/index.ts.template +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/profile/types/relation.ts.template +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/user/index.ts.template +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/user/models/index.ts.template +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/user/models/user.ts.template +15 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/index.ts.template +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/index.ts.template +1 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/index.ts.template +2 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/listener.ts.template +96 -0
- package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/slice.ts.template +50 -0
- package/src/shared/generators/index.d.ts +7 -0
- package/src/shared/generators/index.js +11 -0
- package/src/shared/generators/index.js.map +1 -0
- package/src/shared/generators/rn-styles/generator.d.ts +6 -0
- package/src/shared/generators/rn-styles/generator.js +36 -0
- package/src/shared/generators/rn-styles/generator.js.map +1 -0
- package/src/shared/generators/rn-styles/index.d.ts +1 -0
- package/src/shared/generators/rn-styles/index.js +5 -0
- package/src/shared/generators/rn-styles/index.js.map +1 -0
- package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/index.ts.template +1 -0
- package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/extended-stylesheet.ts.template +44 -0
- package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/index.ts.template +3 -0
- package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/styles.ts.template +30 -0
- package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/variables.ts.template +38 -0
- package/src/shared/generators/storage/generator.d.ts +6 -0
- package/src/shared/generators/storage/generator.js +25 -0
- package/src/shared/generators/storage/generator.js.map +1 -0
- package/src/shared/generators/storage/index.d.ts +1 -0
- package/src/shared/generators/storage/index.js +5 -0
- package/src/shared/generators/storage/index.js.map +1 -0
- package/src/shared/generators/storage/lib-files/shared/data-access/storage/src/index.ts.template +1 -0
- package/src/shared/generators/storage/lib-files/shared/data-access/storage/src/service.ts.template +9 -0
- package/src/shared/generators/store/expo-app/lib-files/shared/data-access/store/src/index.ts.template +1 -0
- package/src/shared/generators/store/expo-app/lib-files/shared/data-access/store/src/store.ts.template +38 -0
- package/src/shared/generators/store/generator.d.ts +8 -0
- package/src/shared/generators/store/generator.js +34 -0
- package/src/shared/generators/store/generator.js.map +1 -0
- package/src/shared/generators/store/index.d.ts +1 -0
- package/src/shared/generators/store/index.js +5 -0
- package/src/shared/generators/store/index.js.map +1 -0
- package/src/shared/generators/store/next-app/lib-files/shared/data-access/store/src/index.ts.template +1 -0
- package/src/shared/generators/store/next-app/lib-files/shared/data-access/store/src/store.ts.template +18 -0
- package/src/shared/generators/ui-kitten/generator.d.ts +7 -0
- package/src/shared/generators/ui-kitten/generator.js +48 -0
- package/src/shared/generators/ui-kitten/generator.js.map +1 -0
- package/src/shared/generators/ui-kitten/index.d.ts +1 -0
- package/src/shared/generators/ui-kitten/index.js +5 -0
- package/src/shared/generators/ui-kitten/index.js.map +1 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/features/user-theme-provider/src/index.ts.template +1 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/features/user-theme-provider/src/lib/component.tsx.template +39 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/features/user-theme-provider/src/lib/config.ts.template +5 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/features/user-theme-provider/src/lib/index.ts.template +1 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/create-adaptive-styles.ts.template +39 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/hooks/index.ts.template +1 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/hooks/use-app-theme.ts.template +4 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/index.ts.template +3 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/mapping.ts.template +336 -0
- package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/theme.ts.template +44 -0
- package/src/shared/generators/ui-kitten/schema.d.ts +5 -0
- package/src/shared/generators/ui-kitten/schema.json +33 -0
- package/src/generators/expo-app/files/app/_layout.tsx.template +0 -23
- /package/src/generators/expo-app/{files → app-files}/.env.development.template +0 -0
- /package/src/generators/expo-app/{files → app-files}/README.md.template +0 -0
- /package/src/generators/expo-app/{files → app-files}/app.config.ts.template +0 -0
- /package/src/generators/expo-app/{files → app-files}/eas.json.template +0 -0
- /package/src/generators/expo-app/{files → app-files}/metro.config.js.template +0 -0
package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/slice.ts.template
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { PayloadAction, createSlice, createAction } from '@reduxjs/toolkit';
|
|
2
|
+
import { DateTime } from 'luxon';
|
|
3
|
+
|
|
4
|
+
export interface AuthState {
|
|
5
|
+
isAuthenticated: boolean | null;
|
|
6
|
+
isAppReady: boolean;
|
|
7
|
+
token: string | null;
|
|
8
|
+
tokenExpiresAt: DateTime | null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const initialState: AuthState = {
|
|
12
|
+
isAuthenticated: null,
|
|
13
|
+
isAppReady: false,
|
|
14
|
+
token: null,
|
|
15
|
+
tokenExpiresAt: null,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const authSlice = createSlice({
|
|
19
|
+
name: 'authState',
|
|
20
|
+
initialState,
|
|
21
|
+
reducers: {
|
|
22
|
+
setIsAuthenticated(state, { payload }: PayloadAction<boolean>) {
|
|
23
|
+
state.isAuthenticated = payload;
|
|
24
|
+
},
|
|
25
|
+
setToken(state, { payload }: PayloadAction<string | null>) {
|
|
26
|
+
state.token = payload;
|
|
27
|
+
},
|
|
28
|
+
setIsAppReady(state, { payload }: PayloadAction<boolean>) {
|
|
29
|
+
state.isAppReady = payload;
|
|
30
|
+
},
|
|
31
|
+
setTokenExpiresAt(state, { payload }: PayloadAction<DateTime | null>) {
|
|
32
|
+
state.tokenExpiresAt = payload;
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
selectors: {
|
|
36
|
+
isAuthenticated: (state) => state.isAuthenticated,
|
|
37
|
+
isAppReady: (state) => state.isAppReady,
|
|
38
|
+
token: (state) => state.token,
|
|
39
|
+
tokenExpiresAt: (state) => state.tokenExpiresAt,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export const authActions = {
|
|
44
|
+
...authSlice.actions,
|
|
45
|
+
saveToken: createAction<{ token: string | null; ttl: number }>('authState/saveToken'),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const authReducer = authSlice.reducer;
|
|
49
|
+
export const authReducerPath = authSlice.name;
|
|
50
|
+
export const authSelectors = authSlice.selectors;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./store"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./app-env"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./api-client"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./auth"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./storage"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./rn-styles"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./ui-kitten"), exports);
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../plugin/src/shared/generators/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,oDAA0B;AAC1B,uDAA6B;AAC7B,iDAAuB;AACvB,oDAA0B;AAC1B,sDAA4B;AAC5B,sDAA4B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runRNStylesGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path = require("path");
|
|
8
|
+
const devkit_1 = require("@nx/devkit");
|
|
9
|
+
const dependencies_1 = require("../../dependencies");
|
|
10
|
+
const utils_1 = require("../../utils");
|
|
11
|
+
function runRNStylesGenerator(tree, options) {
|
|
12
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const appRoot = `apps/${options.directory}`;
|
|
14
|
+
const libRoot = `libs/${options.directory}`;
|
|
15
|
+
const libPath = `@${options.name}/${options.directory}`;
|
|
16
|
+
// Generate shared libs
|
|
17
|
+
(0, child_process_1.execSync)(`npx nx g react-lib ${options.directory}/shared/ui/styles`, {
|
|
18
|
+
stdio: 'inherit',
|
|
19
|
+
});
|
|
20
|
+
const appPackagePath = `${appRoot}/package.json`;
|
|
21
|
+
// Remove unnecessary files and files that will be replaced
|
|
22
|
+
tree.delete(`${libRoot}/shared/ui/styles/src/index.ts`);
|
|
23
|
+
// Add lib files
|
|
24
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'lib-files'), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
|
|
25
|
+
formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath }));
|
|
26
|
+
// Add dependencies
|
|
27
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['rn-styles'], {});
|
|
28
|
+
if ((0, fs_1.existsSync)(appPackagePath)) {
|
|
29
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['rn-styles'], {}, appPackagePath);
|
|
30
|
+
}
|
|
31
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
exports.runRNStylesGenerator = runRNStylesGenerator;
|
|
35
|
+
exports.default = runRNStylesGenerator;
|
|
36
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/rn-styles/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,2BAAgC;AAChC,6BAA6B;AAC7B,uCAKoB;AACpB,qDAAkD;AAClD,uCAA8D;AAE9D,SAAsB,oBAAoB,CACxC,IAAU,EACV,OAA4C;;QAE5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAExD,uBAAuB;QACvB,IAAA,wBAAQ,EAAC,sBAAsB,OAAO,CAAC,SAAS,mBAAmB,EAAE;YACnE,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,GAAG,OAAO,eAAe,CAAC;QAEjD,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,gCAAgC,CAAC,CAAC;QAExD,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,kCACzD,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,IAC9B,CAAC;QAEH,mBAAmB;QACnB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAElE,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAlCD,oDAkCC;AAED,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './generator';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/rn-styles/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ImageStyle, TextStyle, ViewStyle } from 'react-native';
|
|
2
|
+
import EStyleSheet from 'react-native-extended-stylesheet';
|
|
3
|
+
|
|
4
|
+
type StyleFunction<K> = () => K;
|
|
5
|
+
type Value<T> = T | (string | (number & object));
|
|
6
|
+
type Variable<T> = Value<T> | StyleFunction<Value<T>>;
|
|
7
|
+
type Extended<T> = { [K in keyof T]: Variable<T[K]> };
|
|
8
|
+
type WebStyle = {
|
|
9
|
+
outlineWidth?: number;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export type AnyStyle = ImageStyle & TextStyle & ViewStyle & WebStyle;
|
|
13
|
+
interface AnyStyleSet {
|
|
14
|
+
[key: string]: AnyStyle;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
export type EStyleSet<T = any> = {
|
|
19
|
+
[K in keyof T]: T[K] extends Variable<number> ? T[K] : T[K] extends MediaQuery ? T[K] : Extended<AnyStyle>;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
export type StyleSet<T = any> = {
|
|
24
|
+
[K in keyof T]: T[K] extends number
|
|
25
|
+
? T[K]
|
|
26
|
+
: T[K] extends string
|
|
27
|
+
? T[K]
|
|
28
|
+
: T[K] extends StyleFunction<number>
|
|
29
|
+
? number
|
|
30
|
+
: T[K] extends StyleFunction<string>
|
|
31
|
+
? string
|
|
32
|
+
: T[K] extends MediaQuery
|
|
33
|
+
? AnyStyleSet
|
|
34
|
+
: AnyStyle;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export interface MediaQuery {
|
|
38
|
+
[key: string]: Extended<AnyStyle>;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export const createStyles = <T = EStyleSet>(styles: EStyleSet<T>): StyleSet<T> =>
|
|
42
|
+
EStyleSheet.create(styles) as StyleSet<T>;
|
|
43
|
+
export const styleValue = (key: string, prop?: string) => EStyleSheet.value(key, prop);
|
|
44
|
+
export const flattenStyle = (style: AnyStyle): AnyStyle => EStyleSheet.flatten(style);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Dimensions } from 'react-native';
|
|
2
|
+
import EStyleSheet from 'react-native-extended-stylesheet';
|
|
3
|
+
import { createStyles } from './extended-stylesheet';
|
|
4
|
+
import { spacings } from './variables';
|
|
5
|
+
|
|
6
|
+
export const screenWidth = Dimensions.get('window').width;
|
|
7
|
+
export const screenHeight = Dimensions.get('window').height;
|
|
8
|
+
export const isSmallScreen = screenWidth <= 360;
|
|
9
|
+
export const rem = isSmallScreen ? 14 : 16;
|
|
10
|
+
export const headerVerticalPadding = 0.625 * rem;
|
|
11
|
+
|
|
12
|
+
EStyleSheet.build({
|
|
13
|
+
$rem: rem,
|
|
14
|
+
$screenWidth: screenWidth,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export const commonStyle = createStyles({
|
|
18
|
+
container: {
|
|
19
|
+
paddingHorizontal: spacings.contentOffset,
|
|
20
|
+
},
|
|
21
|
+
fullFlex: {
|
|
22
|
+
flex: 1,
|
|
23
|
+
},
|
|
24
|
+
fullWidth: {
|
|
25
|
+
width: '100%',
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export const getResponsiveWidth = (width: number) => screenWidth * (width / 100);
|
|
30
|
+
export const getResponsiveHeight = (height: number) => screenHeight * (height / 100);
|
package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/variables.ts.template
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export const colors = {
|
|
2
|
+
primary: '#C32F41',
|
|
3
|
+
primaryOpacity: 'rgba(195, 47, 65, 0.5)',
|
|
4
|
+
primaryPressed: '#8C222F',
|
|
5
|
+
primaryDisabled: '#63636B',
|
|
6
|
+
secondary: '#F6BC2B',
|
|
7
|
+
|
|
8
|
+
textPrimary: '#F6F6F6',
|
|
9
|
+
textBasic: '#1B1A19',
|
|
10
|
+
textSecondary: '#BABABA',
|
|
11
|
+
textTertriary: '#63636B',
|
|
12
|
+
|
|
13
|
+
backgroundPrimary: '#1B1A19',
|
|
14
|
+
backgroundSecondary: '#292726',
|
|
15
|
+
backgroundTertiary: '#484442',
|
|
16
|
+
|
|
17
|
+
borderPrimary: '#BABABA',
|
|
18
|
+
borderSecondary: '#63636B',
|
|
19
|
+
|
|
20
|
+
error: '#F93487',
|
|
21
|
+
success: '#31B264',
|
|
22
|
+
warning: '#DB8709',
|
|
23
|
+
active: '#F0F0F0'
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const spacings = {
|
|
27
|
+
elementOffset: '0.5rem', // 8px
|
|
28
|
+
basicOffset: '1rem', // 16px
|
|
29
|
+
contentOffset: '1.25rem', // 20px
|
|
30
|
+
containerOffset: '1.5rem', // 24px
|
|
31
|
+
containerSecondaryOffset: '2rem' // 32px
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const fontFamily = {
|
|
35
|
+
regular: 'System',
|
|
36
|
+
bold: 'System',
|
|
37
|
+
semiBold: 'System'
|
|
38
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runStorageGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const devkit_1 = require("@nx/devkit");
|
|
8
|
+
const utils_1 = require("../../utils");
|
|
9
|
+
function runStorageGenerator(tree, options) {
|
|
10
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
|
+
const libRoot = `libs/${options.directory}`;
|
|
12
|
+
const libPath = `@${options.name}/${options.directory}`;
|
|
13
|
+
// Generate shared libs
|
|
14
|
+
(0, child_process_1.execSync)(`npx nx g react-lib ${options.directory}/shared/data-access/storage`, { stdio: 'inherit' });
|
|
15
|
+
// Remove unnecessary files and files that will be replaced
|
|
16
|
+
tree.delete(`${libRoot}/shared/data-access/storage/src/index.ts`);
|
|
17
|
+
// Add lib files
|
|
18
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, '/lib-files'), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
|
|
19
|
+
formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath }));
|
|
20
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.runStorageGenerator = runStorageGenerator;
|
|
24
|
+
exports.default = runStorageGenerator;
|
|
25
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/storage/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,6BAA6B;AAC7B,uCAIoB;AACpB,uCAA8D;AAE9D,SAAsB,mBAAmB,CACvC,IAAU,EACV,OAA4C;;QAE5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAExD,uBAAuB;QACvB,IAAA,wBAAQ,EAAC,sBAAsB,OAAO,CAAC,SAAS,6BAA6B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAErG,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,0CAA0C,CAAC,CAAC;QAElE,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,kCAC1D,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,IAC9B,CAAC;QAEH,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAtBD,kDAsBC;AAED,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './generator';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/storage/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
|
package/src/shared/generators/storage/lib-files/shared/data-access/storage/src/index.ts.template
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './service';
|
package/src/shared/generators/storage/lib-files/shared/data-access/storage/src/service.ts.template
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AsyncStorageItem, SecureStorageItem } from '@ronas-it/react-native-common-modules';
|
|
2
|
+
|
|
3
|
+
class AppStorageService {
|
|
4
|
+
public token = new SecureStorageItem('token');
|
|
5
|
+
public tokenExpiresAt = new AsyncStorageItem('tokenExpiresAt');
|
|
6
|
+
public isAuthenticated = new AsyncStorageItem('isAuthenticated');
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const appStorageService = new AppStorageService();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './store';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Reducer } from '@reduxjs/toolkit';
|
|
2
|
+
import { setupReactotron } from '@ronas-it/react-native-common-modules';
|
|
3
|
+
import {
|
|
4
|
+
AppStateFromRootReducer,
|
|
5
|
+
createStoreInitializer,
|
|
6
|
+
} from '@ronas-it/rtkq-entity-api';
|
|
7
|
+
import { authApi, profileApi } from '<%= formatDirectory() %>/shared/data-access/api';
|
|
8
|
+
import {
|
|
9
|
+
authListenerMiddleware,
|
|
10
|
+
authReducer,
|
|
11
|
+
authReducerPath,
|
|
12
|
+
} from '<%= formatDirectory() %>/shared/data-access/auth';
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
export type AppState = AppStateFromRootReducer<typeof rootReducer>;
|
|
16
|
+
|
|
17
|
+
const rootReducer = {
|
|
18
|
+
[authApi.reducerPath]: authApi.reducer,
|
|
19
|
+
[authReducerPath]: authReducer,
|
|
20
|
+
[profileApi.reducerPath]: profileApi.reducer,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const middlewares = [
|
|
24
|
+
authApi.middleware,
|
|
25
|
+
authListenerMiddleware.middleware,
|
|
26
|
+
profileApi.middleware
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
const reactotron = setupReactotron('my-app');
|
|
30
|
+
const enhancers = reactotron ? [reactotron.createEnhancer()] : [];
|
|
31
|
+
|
|
32
|
+
const initStore = createStoreInitializer({
|
|
33
|
+
rootReducer: rootReducer as unknown as Reducer<AppState>,
|
|
34
|
+
middlewares,
|
|
35
|
+
enhancers,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
export const store = initStore();
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import { BaseGeneratorType } from '../../enums';
|
|
3
|
+
export declare function runStoreGenerator(tree: Tree, options: {
|
|
4
|
+
name: string;
|
|
5
|
+
directory: string;
|
|
6
|
+
baseGeneratorType: BaseGeneratorType;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
export default runStoreGenerator;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runStoreGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path = require("path");
|
|
8
|
+
const devkit_1 = require("@nx/devkit");
|
|
9
|
+
const dependencies_1 = require("../../dependencies");
|
|
10
|
+
const utils_1 = require("../../utils");
|
|
11
|
+
function runStoreGenerator(tree, options) {
|
|
12
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const appRoot = `apps/${options.directory}`;
|
|
14
|
+
const libRoot = `libs/${options.directory}`;
|
|
15
|
+
const libPath = `@${options.name}/${options.directory}`;
|
|
16
|
+
// Generate shared libs
|
|
17
|
+
(0, child_process_1.execSync)(`npx nx g react-lib ${options.directory}/shared/data-access/store`, { stdio: 'inherit' });
|
|
18
|
+
const appPackagePath = `${appRoot}/package.json`;
|
|
19
|
+
// Remove unnecessary files and files that will be replaced
|
|
20
|
+
tree.delete(`${libRoot}/shared/data-access/store/src/index.ts`);
|
|
21
|
+
// Add lib files
|
|
22
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, `${options.baseGeneratorType}/lib-files`), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
|
|
23
|
+
formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath }));
|
|
24
|
+
// Add dependencies
|
|
25
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['store'], {});
|
|
26
|
+
if ((0, fs_1.existsSync)(appPackagePath)) {
|
|
27
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['store'], {}, appPackagePath);
|
|
28
|
+
}
|
|
29
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
exports.runStoreGenerator = runStoreGenerator;
|
|
33
|
+
exports.default = runStoreGenerator;
|
|
34
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/store/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,2BAAgC;AAChC,6BAA6B;AAC7B,uCAKoB;AACpB,qDAAkD;AAElD,uCAA8D;AAE9D,SAAsB,iBAAiB,CACrC,IAAU,EACV,OAAkF;;QAElF,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAExD,uBAAuB;QACvB,IAAA,wBAAQ,EAAC,sBAAsB,OAAO,CAAC,SAAS,2BAA2B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAEnG,MAAM,cAAc,GAAG,GAAG,OAAO,eAAe,CAAC;QAEjD,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,wCAAwC,CAAC,CAAC;QAEhE,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,iBAAiB,YAAY,CAAC,EAAE,OAAO,kCACtF,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,IAC9B,CAAC;QAEH,mBAAmB;QACnB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9D,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAhCD,8CAgCC;AAED,kBAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './generator';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/store/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './store';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Middleware, Reducer } from '@reduxjs/toolkit';
|
|
2
|
+
import {
|
|
3
|
+
AppStateFromRootReducer,
|
|
4
|
+
createStoreInitializer,
|
|
5
|
+
} from '@ronas-it/rtkq-entity-api';
|
|
6
|
+
|
|
7
|
+
export type AppState = AppStateFromRootReducer<typeof rootReducer>;
|
|
8
|
+
|
|
9
|
+
const rootReducer = {};
|
|
10
|
+
|
|
11
|
+
const middlewares = [] as Array<Middleware>;
|
|
12
|
+
|
|
13
|
+
const initStore = createStoreInitializer({
|
|
14
|
+
rootReducer: rootReducer as unknown as Reducer<AppState>,
|
|
15
|
+
middlewares
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export const store = initStore();
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runUIKittenGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path = require("path");
|
|
8
|
+
const devkit_1 = require("@nx/devkit");
|
|
9
|
+
const dependencies_1 = require("../../dependencies");
|
|
10
|
+
const utils_1 = require("../../utils");
|
|
11
|
+
function runUIKittenGenerator(tree, options) {
|
|
12
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const appRoot = `apps/${options.directory}`;
|
|
14
|
+
const libRoot = `libs/${options.directory}`;
|
|
15
|
+
const libPath = `@${options.name}/${options.directory}`;
|
|
16
|
+
if (!options.confirmation) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// Generate shared libs
|
|
20
|
+
(0, child_process_1.execSync)(`npx nx g react-lib ${options.directory}/shared/features/user-theme-provider`, {
|
|
21
|
+
stdio: 'inherit',
|
|
22
|
+
});
|
|
23
|
+
const appPackagePath = `${appRoot}/package.json`;
|
|
24
|
+
// Remove unnecessary files and files that will be replaced
|
|
25
|
+
tree.delete(`${libRoot}/shared/features/user-theme-provider/src/index.ts`);
|
|
26
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, '../../../generators/expo-app/app-files/app'), `${appRoot}/app`, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
|
|
27
|
+
formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath, isUIKittenEnabled: true }));
|
|
28
|
+
// Add lib files
|
|
29
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'lib-files'), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
|
|
30
|
+
formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath }));
|
|
31
|
+
// Update styles lib exports
|
|
32
|
+
const stylesLibIndexData = tree.read(`${libRoot}/shared/ui/styles/src/lib/index.ts`);
|
|
33
|
+
const newStylesLibIndexData = stylesLibIndexData + `export * from './create-adaptive-styles';\nexport * from './eva-theme';\n`;
|
|
34
|
+
tree.write(`${libRoot}/shared/ui/styles/src/lib/index.ts`, newStylesLibIndexData);
|
|
35
|
+
// Add dependencies
|
|
36
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['ui-kitten'], {});
|
|
37
|
+
if ((0, fs_1.existsSync)(appPackagePath)) {
|
|
38
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['ui-kitten'], {}, appPackagePath);
|
|
39
|
+
}
|
|
40
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
41
|
+
return () => {
|
|
42
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
exports.runUIKittenGenerator = runUIKittenGenerator;
|
|
47
|
+
exports.default = runUIKittenGenerator;
|
|
48
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/ui-kitten/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,2BAAgC;AAChC,6BAA6B;AAC7B,uCAMoB;AACpB,qDAAkD;AAClD,uCAA8D;AAE9D,SAAsB,oBAAoB,CACxC,IAAU,EACV,OAAkE;;QAElE,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,IAAA,wBAAQ,EAAC,sBAAsB,OAAO,CAAC,SAAS,sCAAsC,EAAE;YACtF,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,GAAG,OAAO,eAAe,CAAC;QAEjD,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,mDAAmD,CAAC,CAAC;QAE3E,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4CAA4C,CAAC,EAAE,GAAG,OAAO,MAAM,kCACnG,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,EAC9B,iBAAiB,EAAE,IAAI,IACvB,CAAC;QAEH,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,kCACzD,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,IAC9B,CAAC;QAEH,4BAA4B;QAC5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,oCAAoC,CAAC,CAAC;QACrF,MAAM,qBAAqB,GAAG,kBAAkB,GAAG,2EAA2E,CAAC;QAE/H,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,oCAAoC,EAAE,qBAAqB,CAAC,CAAC;QAElF,mBAAmB;QACnB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAElE,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AAxDD,oDAwDC;AAED,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './generator';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/ui-kitten/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CustomSchemaType } from '@eva-design/dss';
|
|
2
|
+
import * as eva from '@eva-design/eva';
|
|
3
|
+
import { ThemeProvider, DarkTheme } from '@react-navigation/native';
|
|
4
|
+
import { ApplicationProvider } from '@ui-kitten/components';
|
|
5
|
+
import { StatusBar } from 'expo-status-bar';
|
|
6
|
+
import { noop } from 'lodash';
|
|
7
|
+
import React, { ReactElement, createContext } from 'react';
|
|
8
|
+
import { mapping, theme, UserTheme } from '<%= formatDirectory() %>/shared/ui/styles';
|
|
9
|
+
import { userThemeConfig } from './config';
|
|
10
|
+
|
|
11
|
+
interface UserThemeProviderProps {
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const UserThemeContext = createContext<{
|
|
16
|
+
userTheme: UserTheme;
|
|
17
|
+
isAutoTheme: boolean | null;
|
|
18
|
+
hasDeviceTheme: boolean | null;
|
|
19
|
+
setUserTheme: (value: UserTheme) => void;
|
|
20
|
+
toggleIsAutoTheme: (isAutoTheme: boolean) => void;
|
|
21
|
+
}>({
|
|
22
|
+
userTheme: userThemeConfig.defaultUserTheme,
|
|
23
|
+
hasDeviceTheme: null,
|
|
24
|
+
isAutoTheme: null,
|
|
25
|
+
setUserTheme: noop,
|
|
26
|
+
toggleIsAutoTheme: noop,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export function UserThemeProvider({ children }: UserThemeProviderProps): ReactElement {
|
|
30
|
+
return (
|
|
31
|
+
<ApplicationProvider {...eva} theme={theme['dark']} customMapping={mapping as CustomSchemaType}>
|
|
32
|
+
<ThemeProvider value={DarkTheme}>
|
|
33
|
+
{/* eslint-disable-next-line react/style-prop-object */}
|
|
34
|
+
<StatusBar style={'light'} />
|
|
35
|
+
{children}
|
|
36
|
+
</ThemeProvider>
|
|
37
|
+
</ApplicationProvider>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './component';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { cloneDeep, isFunction } from 'lodash';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { useWindowDimensions } from 'react-native';
|
|
4
|
+
import { Theme, useAppTheme } from './eva-theme';
|
|
5
|
+
import { createStyles, EStyleSet, StyleSet } from './extended-stylesheet';
|
|
6
|
+
import { screenWidth } from './styles';
|
|
7
|
+
|
|
8
|
+
export enum ViewPortWidthBreakpoints {
|
|
9
|
+
MOBILE = 480,
|
|
10
|
+
TABLET = 768,
|
|
11
|
+
DESKTOP = 1024,
|
|
12
|
+
WIDESCREEN = 1440,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum MediaBreakpoints {
|
|
16
|
+
MOBILE = `@media (min-width: ${ViewPortWidthBreakpoints.MOBILE}px)`,
|
|
17
|
+
TABLET = `@media (min-width: ${ViewPortWidthBreakpoints.TABLET}px)`,
|
|
18
|
+
DESKTOP = `@media (min-width: ${ViewPortWidthBreakpoints.DESKTOP}px)`,
|
|
19
|
+
WIDESCREEN = `@media (min-width: ${ViewPortWidthBreakpoints.WIDESCREEN}px)`,
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const isTablet = screenWidth <= ViewPortWidthBreakpoints.TABLET;
|
|
23
|
+
|
|
24
|
+
export function createAdaptiveStyles<T extends EStyleSet = EStyleSet>(
|
|
25
|
+
stylesOrGetter: EStyleSet<T> | ((theme: Theme) => T),
|
|
26
|
+
): typeof useAdaptiveStyles {
|
|
27
|
+
const useAdaptiveStyles = (theme?: Theme): StyleSet<T> => {
|
|
28
|
+
const { width } = useWindowDimensions();
|
|
29
|
+
const appTheme = useAppTheme();
|
|
30
|
+
|
|
31
|
+
return useMemo(
|
|
32
|
+
() => createStyles<T>(cloneDeep(isFunction(stylesOrGetter) ? stylesOrGetter(theme || appTheme) : stylesOrGetter)),
|
|
33
|
+
[width, theme, appTheme],
|
|
34
|
+
);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return useAdaptiveStyles;
|
|
38
|
+
}
|
|
39
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './use-app-theme';
|