@axelor/aos-mobile-core 6.5.3 → 6.5.5

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.
Files changed (70) hide show
  1. package/lib/api/metafile-api.d.ts +3 -1
  2. package/lib/api/metafile-api.js +10 -2
  3. package/lib/api/metafile-api.js.map +1 -1
  4. package/lib/apiProviders/utils.d.ts +7 -7
  5. package/lib/apiProviders/utils.js +22 -11
  6. package/lib/apiProviders/utils.js.map +1 -1
  7. package/lib/app/Module.d.ts +15 -2
  8. package/lib/auth/api/user-api.js +5 -3
  9. package/lib/auth/api/user-api.js.map +1 -1
  10. package/lib/auth/features/userSlice.js +7 -1
  11. package/lib/auth/features/userSlice.js.map +1 -1
  12. package/lib/auth/index.js +1 -0
  13. package/lib/auth/index.js.map +1 -1
  14. package/lib/auth/models/objectFields.js +14 -0
  15. package/lib/auth/models/objectFields.js.map +1 -1
  16. package/lib/components/molecules/UploadFileInput/UploadFileInput.d.ts +11 -2
  17. package/lib/components/molecules/UploadFileInput/UploadFileInput.js +128 -19
  18. package/lib/components/molecules/UploadFileInput/UploadFileInput.js.map +1 -1
  19. package/lib/components/organisms/DateInput/DateInput.d.ts +2 -1
  20. package/lib/components/organisms/DateInput/DateInput.js +10 -12
  21. package/lib/components/organisms/DateInput/DateInput.js.map +1 -1
  22. package/lib/header/HeaderActionsProvider.d.ts +3 -4
  23. package/lib/header/HeaderActionsProvider.js +16 -10
  24. package/lib/header/HeaderActionsProvider.js.map +1 -1
  25. package/lib/header/index.d.ts +2 -1
  26. package/lib/header/index.js +2 -1
  27. package/lib/header/index.js.map +1 -1
  28. package/lib/i18n/hooks/use-translator.d.ts +1 -1
  29. package/lib/i18n/translations/en.json +20 -0
  30. package/lib/i18n/translations/fr.json +20 -0
  31. package/lib/navigator/Navigator.js +19 -7
  32. package/lib/navigator/Navigator.js.map +1 -1
  33. package/lib/navigator/drawer/DrawerContent.js +38 -18
  34. package/lib/navigator/drawer/DrawerContent.js.map +1 -1
  35. package/lib/navigator/drawer/Header.js +26 -6
  36. package/lib/navigator/drawer/Header.js.map +1 -1
  37. package/lib/navigator/drawer/Menu.js +31 -14
  38. package/lib/navigator/drawer/Menu.js.map +1 -1
  39. package/lib/navigator/drawer/MenuItem.d.ts +8 -5
  40. package/lib/navigator/drawer/MenuItem.js +11 -51
  41. package/lib/navigator/drawer/MenuItem.js.map +1 -1
  42. package/lib/navigator/drawer/MenuItemEntry.d.ts +12 -0
  43. package/lib/navigator/drawer/MenuItemEntry.js +89 -0
  44. package/lib/navigator/drawer/MenuItemEntry.js.map +1 -0
  45. package/lib/navigator/drawer/SubMenuItem.d.ts +7 -0
  46. package/lib/navigator/drawer/SubMenuItem.js +34 -0
  47. package/lib/navigator/drawer/SubMenuItem.js.map +1 -0
  48. package/lib/navigator/drawer/SubMenuItemList.d.ts +10 -0
  49. package/lib/navigator/drawer/SubMenuItemList.js +46 -0
  50. package/lib/navigator/drawer/SubMenuItemList.js.map +1 -0
  51. package/lib/navigator/menu.helper.d.ts +9 -0
  52. package/lib/navigator/menu.helper.js +92 -0
  53. package/lib/navigator/menu.helper.js.map +1 -1
  54. package/lib/navigator/module.helper.js.map +1 -1
  55. package/lib/tools/ContactProvider.d.ts +9 -0
  56. package/lib/tools/ContactProvider.js +98 -0
  57. package/lib/tools/ContactProvider.js.map +1 -0
  58. package/lib/tools/contact.helper.d.ts +21 -0
  59. package/lib/tools/contact.helper.js +136 -0
  60. package/lib/tools/contact.helper.js.map +1 -0
  61. package/lib/tools/index.d.ts +1 -0
  62. package/lib/tools/index.js +1 -0
  63. package/lib/tools/index.js.map +1 -1
  64. package/lib/utils/date.d.ts +16 -0
  65. package/lib/utils/date.js +41 -0
  66. package/lib/utils/date.js.map +1 -1
  67. package/lib/utils/index.d.ts +1 -1
  68. package/lib/utils/index.js +1 -1
  69. package/lib/utils/index.js.map +1 -1
  70. package/package.json +5 -3
@@ -3,8 +3,10 @@ export declare function fetchFileDetails({ listFiles, isMetaFile }: {
3
3
  listFiles: any;
4
4
  isMetaFile: any;
5
5
  }): Promise<any>;
6
- export declare function uploadFile(file: DocumentPickerResponse, { baseUrl, jsessionId, token }: {
6
+ export declare function uploadFile(file: DocumentPickerResponse, { baseUrl, jsessionId, token, returnBase64String }: {
7
7
  baseUrl: any;
8
8
  jsessionId: any;
9
9
  token: any;
10
+ returnBase64String: any;
10
11
  }): Promise<any>;
12
+ export declare function deleteMetaFile(fileId: number): Promise<any>;
@@ -15,7 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
- import { createStandardSearch } from '../apiProviders';
18
+ import { axiosApiProvider, createStandardSearch, } from '../apiProviders';
19
19
  import RNFS from 'react-native-fs';
20
20
  import RNFetchBlob from 'rn-fetch-blob';
21
21
  const createCriteria = (listFiles) => {
@@ -48,13 +48,16 @@ export async function fetchFileDetails({ listFiles, isMetaFile }) {
48
48
  page: 0,
49
49
  });
50
50
  }
51
- export async function uploadFile(file, { baseUrl, jsessionId, token }) {
51
+ export async function uploadFile(file, { baseUrl, jsessionId, token, returnBase64String }) {
52
52
  if (file == null) {
53
53
  return;
54
54
  }
55
55
  return new Promise(async (resolve, reject) => {
56
56
  try {
57
57
  const base64Data = await RNFS.readFile(file.uri, 'base64');
58
+ if (returnBase64String) {
59
+ resolve(`data:${file.type};base64,${base64Data}`);
60
+ }
58
61
  const headers = {
59
62
  'Content-Type': 'application/octet-stream',
60
63
  'Content-Length': String(file.size),
@@ -79,4 +82,9 @@ export async function uploadFile(file, { baseUrl, jsessionId, token }) {
79
82
  }
80
83
  });
81
84
  }
85
+ export async function deleteMetaFile(fileId) {
86
+ return axiosApiProvider.delete({
87
+ url: `ws/rest/com.axelor.meta.db.MetaFile/${fileId}`,
88
+ });
89
+ }
82
90
  //# sourceMappingURL=metafile-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metafile-api.js","sourceRoot":"","sources":["../../src/api/metafile-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,oBAAoB,EAAW,MAAM,iBAAiB,CAAC;AAE/D,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAc,EAAE;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC5B,OAAO;YACL;gBACE,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC7B,MAAM,QAAQ,GAAa;wBACzB,SAAS,EAAE,IAAI;wBACf,QAAQ,EAAE,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,EAAE;qBACf,CAAC;oBAEF,OAAO,QAAQ,CAAC;gBAClB,CAAC,CAAC;aACH;SACF,CAAC;KACH;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAC,SAAS,EAAE,UAAU,EAAC;IAC5D,MAAM,KAAK,GAAG,UAAU;QACtB,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,2BAA2B,CAAC;IAEhC,OAAO,oBAAoB,CAAC;QAC1B,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC;QACnC,QAAQ,EAAE,eAAe;QACzB,oBAAoB,EAAE,IAAI;QAC1B,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAA4B,EAC5B,EAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAC;IAE5B,IAAI,IAAI,IAAI,IAAI,EAAE;QAChB,OAAO;KACR;IAED,OAAO,IAAI,OAAO,CAAM,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAChD,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE3D,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE,0BAA0B;gBAC1C,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnC,aAAa,EAAE,IAAI,CAAC,IAAI;gBACxB,aAAa,EAAE,IAAI,CAAC,IAAI;gBACxB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC1B,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,cAAc,KAAK,KAAK,UAAU,EAAE;aAC7C,CAAC;YAEF,MAAM,QAAQ,GAAQ,MAAM,WAAW,CAAC,KAAK,CAC3C,MAAM,EACN,GAAG,OAAO,iBAAiB,EAC3B,OAAO,EACP,UAAU,CACX,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACxC,OAAO,CAAC,QAAQ,CAAC,CAAC;aACnB;iBAAM;gBACL,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;aACpC;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,CAAC,CAAC;SACf;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"metafile-api.js","sourceRoot":"","sources":["../../src/api/metafile-api.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare const getApiResponseData: (response: any, { isArrayResponse }: {
4
4
  export declare const getFirstData: (data: any) => any;
5
5
  export declare const handlerError: (message: any, { getState }: {
6
6
  getState?: () => void;
7
- }, { showErrorToast, errorTracing }: errorOptionsProps) => (error: any) => void;
7
+ }, options: any) => (error: any) => any;
8
8
  interface ApiHandlerProps {
9
9
  fetchFunction: (data: any) => Promise<any>;
10
10
  data: any;
@@ -14,12 +14,12 @@ interface ApiHandlerProps {
14
14
  showToast?: boolean;
15
15
  isArrayResponse?: boolean;
16
16
  returnTotal?: boolean;
17
+ returnResponseMessage?: boolean;
18
+ };
19
+ errorOptions?: {
20
+ showErrorToast?: boolean;
21
+ errorTracing?: boolean;
17
22
  };
18
- errorOptions?: errorOptionsProps;
19
- }
20
- interface errorOptionsProps {
21
- showErrorToast?: boolean;
22
- errorTracing?: boolean;
23
23
  }
24
- export declare const handlerApiCall: ({ fetchFunction, data, action, getState, responseOptions: { showToast, isArrayResponse, returnTotal, }, errorOptions, }: ApiHandlerProps) => Promise<any>;
24
+ export declare const handlerApiCall: ({ fetchFunction, data, action, getState, responseOptions, errorOptions, }: ApiHandlerProps) => Promise<any>;
25
25
  export {};
@@ -27,6 +27,7 @@ export const getApiResponseData = (response, { isArrayResponse = true }) => {
27
27
  : getFirstData(response?.data?.data);
28
28
  };
29
29
  const getApiResponseMessage = response => response?.data?.messageStatus || response?.statusTxt;
30
+ const getApiResponseCode = response => response?.data?.codeStatus || response?.status;
30
31
  const getApiResponseTotal = response => response?.data?.total || 0;
31
32
  export const getFirstData = data => {
32
33
  if (data instanceof Array) {
@@ -57,17 +58,16 @@ const manageError = (error, action, userId, { showErrorToast = true, errorTracin
57
58
  text2: `${i18nProvider.i18n.t('Base_Failed_To')} ${i18nProvider.i18n.t(action)}: ${message}.`,
58
59
  });
59
60
  }
61
+ return error.response;
60
62
  }
61
63
  };
62
- export const handlerError = (message, { getState = () => { } }, { showErrorToast, errorTracing }) => {
63
- return error => manageError(error, message, getUser({ getState }), {
64
- showErrorToast,
65
- errorTracing,
66
- });
64
+ export const handlerError = (message, { getState = () => { } }, options) => {
65
+ return error => manageError(error, message, getUser({ getState }), options);
67
66
  };
68
- const manageSucess = (response, action, { showToast = false, isArrayResponse, returnTotal = false }) => {
67
+ const manageSucess = (response, action, { showToast = false, isArrayResponse, returnTotal = false, returnResponseMessage = false, }) => {
69
68
  const data = getApiResponseData(response, { isArrayResponse });
70
69
  const message = getApiResponseMessage(response);
70
+ const code = getApiResponseCode(response);
71
71
  const total = getApiResponseTotal(response);
72
72
  if (showToast) {
73
73
  Toast.show({
@@ -78,14 +78,25 @@ const manageSucess = (response, action, { showToast = false, isArrayResponse, re
78
78
  text2: `${message ? message : i18nProvider.i18n.t(action)}.`,
79
79
  });
80
80
  }
81
- return returnTotal ? total : data;
81
+ if (returnResponseMessage) {
82
+ return { total, data, message, code };
83
+ }
84
+ if (returnTotal) {
85
+ return total;
86
+ }
87
+ return data;
82
88
  };
83
- const handlerSuccess = (action, { showToast, isArrayResponse, returnTotal }) => {
84
- return response => manageSucess(response, action, { showToast, isArrayResponse, returnTotal });
89
+ const handlerSuccess = (action, options) => {
90
+ return response => manageSucess(response, action, options);
85
91
  };
86
- export const handlerApiCall = ({ fetchFunction, data, action, getState, responseOptions: { showToast = false, isArrayResponse = false, returnTotal = false, }, errorOptions = { showErrorToast: true, errorTracing: true }, }) => {
92
+ export const handlerApiCall = ({ fetchFunction, data, action, getState, responseOptions = {
93
+ showToast: false,
94
+ isArrayResponse: false,
95
+ returnTotal: false,
96
+ returnResponseMessage: false,
97
+ }, errorOptions = { showErrorToast: true, errorTracing: true }, }) => {
87
98
  return fetchFunction(data)
88
99
  .catch(handlerError(action, { getState }, errorOptions))
89
- .then(handlerSuccess(action, { showToast, isArrayResponse, returnTotal }));
100
+ .then(handlerSuccess(action, responseOptions));
90
101
  };
91
102
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/apiProviders/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/apiProviders/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,4BAA4B,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,EAAC,eAAe,GAAG,IAAI,EAAC,EAAE,EAAE;IACvE,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;QACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;KAC7B;IACD,OAAO,eAAe;QACpB,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI;QACtB,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,QAAQ,CAAC,EAAE,CACvC,QAAQ,EAAE,IAAI,EAAE,aAAa,IAAI,QAAQ,EAAE,SAAS,CAAC;AAEvD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,EAAE,CACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,CAAC;AAEjD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE;IACjC,IAAI,IAAI,YAAY,KAAK,EAAE;QACzB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;KAChB;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,EAAC,QAAQ,EAAwB,EAAE,EAAE;IACpD,OAAO,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,KAAK,EACL,MAAM,EACN,MAAM,EACN,EAAC,cAAc,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI,EAAC,EAC5C,EAAE;IACF,IAAI,KAAK,CAAC,QAAQ,EAAE;QAClB,MAAM,OAAO,GACX,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,IAAI,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;QAEzE,IAAI,YAAY,EAAE;YAChB,UAAU,CAAC;gBACT,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACxD,MAAM;aACP,CAAC,CAAC;SACJ;QAED,IAAI,cAAc,EAAE;YAClB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,QAAQ;gBAClB,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,SAAS,IAAI,EAAE;gBACtB,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CACpE,MAAM,CACP,KAAK,OAAO,GAAG;aACjB,CAAC,CAAC;SACJ;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC;KACvB;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,EAAC,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,EAAC,EAAE,OAAO,EAAE,EAAE;IACtE,OAAO,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,QAAQ,EACR,MAAM,EACN,EACE,SAAS,GAAG,KAAK,EACjB,eAAe,EACf,WAAW,GAAG,KAAK,EACnB,qBAAqB,GAAG,KAAK,GAC9B,EACD,EAAE;IACF,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,EAAE,EAAC,eAAe,EAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;YAC1C,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;SAC7D,CAAC,CAAC;KACJ;IAED,IAAI,qBAAqB,EAAE;QACzB,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;KACrC;IAED,IAAI,WAAW,EAAE;QACf,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;IACzC,OAAO,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC,CAAC;AAmBF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,aAAa,EACb,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,eAAe,GAAG;IAChB,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,KAAK;IAClB,qBAAqB,EAAE,KAAK;CAC7B,EACD,YAAY,GAAG,EAAC,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAC,GACzC,EAAE,EAAE;IACpB,OAAO,aAAa,CAAC,IAAI,CAAC;SACvB,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAC,EAAE,YAAY,CAAC,CAAC;SACrD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC"}
@@ -1,14 +1,27 @@
1
1
  /// <reference types="react" />
2
2
  import { Reducer } from '@reduxjs/toolkit';
3
3
  import { Schema } from 'yup';
4
- export interface Menu {
4
+ interface MenuBase {
5
5
  title: string;
6
6
  icon: string;
7
- screen: string;
8
7
  disabled?: boolean;
9
8
  parent?: string;
10
9
  order?: number;
11
10
  }
11
+ interface MenuWithSubMenus extends MenuBase {
12
+ subMenus: {
13
+ [subMenuKey: string]: SubMenu;
14
+ };
15
+ }
16
+ interface MenuWithScreen extends MenuBase {
17
+ screen: string;
18
+ }
19
+ interface RootMenuWithScreen extends MenuWithScreen {
20
+ isDefault?: boolean;
21
+ }
22
+ export type Menu = MenuWithSubMenus | RootMenuWithScreen;
23
+ export interface SubMenu extends MenuWithScreen {
24
+ }
12
25
  interface ScreenOptions {
13
26
  shadedHeader: boolean;
14
27
  }
@@ -15,10 +15,12 @@
15
15
  * You should have received a copy of the GNU Affero General Public License
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
- import { axiosApiProvider } from '../../apiProviders';
18
+ import { axiosApiProvider, createStandardFetch } from '../../apiProviders';
19
19
  export async function getLoggedUser(userId) {
20
- return axiosApiProvider.get({
21
- url: `/ws/rest/com.axelor.auth.db.User/${userId}`,
20
+ return createStandardFetch({
21
+ model: 'com.axelor.auth.db.User',
22
+ id: userId,
23
+ fieldKey: 'auth_user',
22
24
  });
23
25
  }
24
26
  export async function postUser(user) {
@@ -1 +1 @@
1
- {"version":3,"file":"user-api.js","sourceRoot":"","sources":["../../../src/auth/api/user-api.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAM;IACxC,OAAO,gBAAgB,CAAC,GAAG,CAAC;QAC1B,GAAG,EAAE,oCAAoC,MAAM,EAAE;KAClD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAI;IACjC,OAAO,gBAAgB,CAAC,IAAI,CAAC;QAC3B,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC;KACnB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"user-api.js","sourceRoot":"","sources":["../../../src/auth/api/user-api.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAM;IACxC,OAAO,mBAAmB,CAAC;QACzB,KAAK,EAAE,yBAAyB;QAChC,EAAE,EAAE,MAAM;QACV,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAI;IACjC,OAAO,gBAAgB,CAAC,IAAI,CAAC;QAC3B,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC;KACnB,CAAC,CAAC;AACL,CAAC"}
@@ -34,7 +34,13 @@ export const updateActiveUser = createAsyncThunk('user/updateActiveUser', async
34
34
  action: 'Auth_SliceAction_UpdateActiveUser',
35
35
  getState,
36
36
  responseOptions: { isArrayResponse: false },
37
- });
37
+ }).then(() => handlerApiCall({
38
+ fetchFunction: getLoggedUser,
39
+ data: user.id,
40
+ action: 'Auth_SliceAction_FetchActiveUser',
41
+ getState,
42
+ responseOptions: { isArrayResponse: false },
43
+ }));
38
44
  });
39
45
  const initialState = {
40
46
  loadingUser: true,
@@ -1 +1 @@
1
- {"version":3,"file":"userSlice.js","sourceRoot":"","sources":["../../../src/auth/features/userSlice.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userSlice.js","sourceRoot":"","sources":["../../../src/auth/features/userSlice.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAC7C,sBAAsB,EACtB,KAAK,WAAW,MAAM,EAAE,EAAC,QAAQ,EAAC;IAChC,OAAO,cAAc,CAAC;QACpB,aAAa,EAAE,aAAa;QAC5B,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,kCAAkC;QAC1C,QAAQ;QACR,eAAe,EAAE,EAAC,eAAe,EAAE,KAAK,EAAC;KAC1C,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAC9C,uBAAuB,EACvB,KAAK,WAAW,IAAI,EAAE,EAAC,QAAQ,EAAC;IAC9B,OAAO,cAAc,CAAC;QACpB,aAAa,EAAE,QAAQ;QACvB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,mCAAmC;QAC3C,QAAQ;QACR,eAAe,EAAE,EAAC,eAAe,EAAE,KAAK,EAAC;KAC1C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACX,cAAc,CAAC;QACb,aAAa,EAAE,aAAa;QAC5B,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,MAAM,EAAE,kCAAkC;QAC1C,QAAQ;QACR,eAAe,EAAE,EAAC,eAAe,EAAE,KAAK,EAAC;KAC1C,CAAC,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,EAAE;IACR,gBAAgB,EAAE,KAAK;CACxB,CAAC;AAEF,MAAM,SAAS,GAAG,WAAW,CAAC;IAC5B,IAAI,EAAE,MAAM;IACZ,YAAY;IACZ,QAAQ,EAAE;QACR,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACrC,KAAK,CAAC,IAAI,GAAG,EAAC,GAAG,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAC,CAAC;QACzE,CAAC;QACD,0BAA0B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5C,KAAK,CAAC,IAAI,GAAG;gBACX,GAAG,KAAK,CAAC,IAAI;gBACb,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB;aACvD,CAAC;QACJ,CAAC;KACF;IACD,aAAa,EAAE,OAAO,CAAC,EAAE;QACvB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YAC/C,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3D,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;YAC1B,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;gBACpC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YAChD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5D,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;YAC1B,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;gBACpC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,mBAAmB,EAAE,0BAA0B,EAAC,GAC5D,SAAS,CAAC,OAAO,CAAC;AAEpB,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC"}
package/lib/auth/index.js CHANGED
@@ -31,6 +31,7 @@ export const authModule = {
31
31
  title: 'User_UserProfile',
32
32
  icon: 'user',
33
33
  screen: 'UserScreen',
34
+ isDefault: true,
34
35
  },
35
36
  },
36
37
  screens: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,YAAY,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAC,cAAc,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AAExD,MAAM,CAAC,MAAM,UAAU,GAAW;IAChC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE;QACL,cAAc,EAAE;YACd,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,YAAY;SACrB;KACF;IACD,OAAO,EAAE;QACP,UAAU,EAAE;YACV,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,mBAAmB;SAC9B;QACD,cAAc,EAAE;YACd,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,cAAc;SAC1B;KACF;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,EAAE,EAAE,cAAc;KACnB;IACD,QAAQ,EAAE;QACR,GAAG,YAAY;KAChB;IACD,MAAM,EAAE;QACN,YAAY,EAAE,EAAC,GAAG,aAAa,EAAC;QAChC,eAAe,EAAE,cAAc;KAChC;CACF,CAAC;AAEF,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,YAAY,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAC,cAAc,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AAExD,MAAM,CAAC,MAAM,UAAU,GAAW;IAChC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE;QACL,cAAc,EAAE;YACd,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,IAAI;SAChB;KACF;IACD,OAAO,EAAE;QACP,UAAU,EAAE;YACV,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,mBAAmB;SAC9B;QACD,cAAc,EAAE;YACd,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,cAAc;SAC1B;KACF;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,EAAE,EAAE,cAAc;KACnB;IACD,QAAQ,EAAE;QACR,GAAG,YAAY;KAChB;IACD,MAAM,EAAE;QACN,YAAY,EAAE,EAAC,GAAG,aAAa,EAAC;QAChC,eAAe,EAAE,cAAc;KAChC;CACF,CAAC;AAEF,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,gCAAgC,CAAC"}
@@ -21,5 +21,19 @@ export const auth_modelAPI = {
21
21
  code: schemaContructor.string(),
22
22
  name: schemaContructor.string(),
23
23
  }),
24
+ auth_user: schemaContructor.object({
25
+ fullName: schemaContructor.string(),
26
+ name: schemaContructor.string(),
27
+ activeCompany: schemaContructor.subObject(),
28
+ 'activeCompany.currency': schemaContructor.subObject(),
29
+ 'activeCompany.currency.symbol': schemaContructor.string(),
30
+ activeTeam: schemaContructor.subObject(),
31
+ workshopStockLocation: schemaContructor.subObject(),
32
+ roles: schemaContructor.array(),
33
+ group: schemaContructor.subObject(),
34
+ employee: schemaContructor.subObject(),
35
+ language: schemaContructor.string(),
36
+ todayDateT: schemaContructor.string(),
37
+ }),
24
38
  };
25
39
  //# sourceMappingURL=objectFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"objectFields.js","sourceRoot":"","sources":["../../../src/auth/models/objectFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAe,gBAAgB,EAAC,MAAM,WAAW,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACpC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;KAChC,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"objectFields.js","sourceRoot":"","sources":["../../../src/auth/models/objectFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAe,gBAAgB,EAAC,MAAM,WAAW,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACpC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;KAChC,CAAC;IACF,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACnC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,aAAa,EAAE,gBAAgB,CAAC,SAAS,EAAE;QAC3C,wBAAwB,EAAE,gBAAgB,CAAC,SAAS,EAAE;QACtD,+BAA+B,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC1D,UAAU,EAAE,gBAAgB,CAAC,SAAS,EAAE;QACxC,qBAAqB,EAAE,gBAAgB,CAAC,SAAS,EAAE;QACnD,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE;QAC/B,KAAK,EAAE,gBAAgB,CAAC,SAAS,EAAE;QACnC,QAAQ,EAAE,gBAAgB,CAAC,SAAS,EAAE;QACtC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACnC,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE;KACtC,CAAC;CACH,CAAC"}
@@ -1,6 +1,15 @@
1
1
  interface UploadFileInputProps {
2
2
  style?: any;
3
- onUpload?: (file: any) => void;
3
+ title?: string;
4
+ defaultValue?: string | any;
5
+ onUpload?: (file?: any) => void;
6
+ returnBase64String?: boolean;
7
+ required?: boolean;
8
+ readonly?: boolean;
9
+ documentTypesAllowed?: 'images' | 'pdf' | 'allFiles';
10
+ canDeleteFile?: boolean;
11
+ displayPreview?: boolean;
12
+ maxSize?: number;
4
13
  }
5
- declare const UploadFileInput: ({ style, onUpload, }: UploadFileInputProps) => JSX.Element;
14
+ declare const UploadFileInput: ({ style, title, defaultValue, onUpload, returnBase64String, required, readonly, documentTypesAllowed, canDeleteFile, displayPreview, maxSize, }: UploadFileInputProps) => JSX.Element;
6
15
  export default UploadFileInput;
@@ -15,24 +15,57 @@
15
15
  * You should have received a copy of the GNU Affero General Public License
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
- import React, { useState } from 'react';
18
+ import React, { useEffect, useMemo, useState } from 'react';
19
19
  import { StyleSheet, View } from 'react-native';
20
20
  import { useSelector } from 'react-redux';
21
21
  import DocumentPicker from 'react-native-document-picker';
22
- import { CircleButton, Text } from '@axelor/aos-mobile-ui';
23
- import { uploadFile } from '../../../api/metafile-api';
22
+ import { CircleButton, Text, getCommonStyles, useThemeColor, Image, } from '@axelor/aos-mobile-ui';
23
+ import { deleteMetaFile, uploadFile } from '../../../api/metafile-api';
24
24
  import { useTranslator } from '../../../i18n';
25
- const UploadFileInput = ({ style, onUpload = console.log, }) => {
25
+ import { openFileInExternalApp } from '../../../tools';
26
+ const DEFAULT_MAX_FILE_SIZE = 5000000;
27
+ const isMetaFile = file => {
28
+ return (typeof file === 'object' &&
29
+ file?.id != null &&
30
+ file?.version != null &&
31
+ file?.fileName != null);
32
+ };
33
+ const formatFileSize = (size) => {
34
+ const _size = Math.abs(size);
35
+ const labels = ['octets', 'ko', 'Mo', 'Go', 'To'];
36
+ for (let i = 0; i < labels.length; i++) {
37
+ if (_size < Math.pow(1000, i)) {
38
+ return (_size / Math.pow(1000, i - 1)).toFixed(2) + ' ' + labels[i - 1];
39
+ }
40
+ }
41
+ };
42
+ const UploadFileInput = ({ style, title, defaultValue, onUpload = console.log, returnBase64String = false, required = false, readonly = false, documentTypesAllowed = 'allFiles', canDeleteFile = true, displayPreview = false, maxSize = DEFAULT_MAX_FILE_SIZE, }) => {
26
43
  const I18n = useTranslator();
44
+ const Colors = useThemeColor();
27
45
  const { baseUrl, token, jsessionId } = useSelector((state) => state.auth);
28
- const [selectedFile, setSelectedFile] = useState(null);
46
+ const [selectedFile, setSelectedFile] = useState(defaultValue);
47
+ const [sizeError, setSizeError] = useState(false);
48
+ const _required = useMemo(() => required && selectedFile == null, [required, selectedFile]);
49
+ const _maxFileSize = useMemo(() => {
50
+ if (maxSize == null) {
51
+ return DEFAULT_MAX_FILE_SIZE;
52
+ }
53
+ return maxSize;
54
+ }, [maxSize]);
55
+ const commonStyles = useMemo(() => getCommonStyles(Colors), [Colors]);
56
+ const styles = useMemo(() => getStyles(Colors, _required), [Colors, _required]);
29
57
  const handleDocumentPick = async () => {
30
58
  try {
31
59
  const file = await DocumentPicker.pickSingle({
32
- type: [DocumentPicker.types.allFiles, DocumentPicker.types.images],
60
+ type: DocumentPicker.types[documentTypesAllowed],
33
61
  });
34
- setSelectedFile(file);
35
- handleFileUpload(file);
62
+ if (file.size < _maxFileSize) {
63
+ setSizeError(false);
64
+ handleFileUpload(file);
65
+ }
66
+ else {
67
+ setSizeError(true);
68
+ }
36
69
  }
37
70
  catch (error) {
38
71
  console.log('Document picking error:', error);
@@ -40,31 +73,107 @@ const UploadFileInput = ({ style, onUpload = console.log, }) => {
40
73
  };
41
74
  const handleFileUpload = async (file) => {
42
75
  try {
43
- const response = await uploadFile(file, { baseUrl, token, jsessionId });
76
+ const response = await uploadFile(file, {
77
+ baseUrl,
78
+ token,
79
+ jsessionId,
80
+ returnBase64String,
81
+ });
82
+ setSelectedFile(returnBase64String
83
+ ? { ...file, base64: response }
84
+ : { ...file, ...response });
44
85
  onUpload(response);
45
86
  }
46
87
  catch (error) {
47
88
  console.log('Could not upload the file:', error);
48
89
  }
49
90
  };
91
+ const handleFileDelete = async () => {
92
+ if (isMetaFile(selectedFile)) {
93
+ try {
94
+ await deleteMetaFile(selectedFile?.id);
95
+ onUpload();
96
+ }
97
+ catch (error) {
98
+ console.log('Could not delete the file:', error);
99
+ }
100
+ }
101
+ setSelectedFile(null);
102
+ };
103
+ const handleFileView = async () => {
104
+ await openFileInExternalApp({
105
+ fileName: selectedFile?.fileName,
106
+ id: selectedFile?.id,
107
+ isMetaFile: true,
108
+ }, { baseUrl: baseUrl, token: token, jsessionId: jsessionId }, I18n);
109
+ };
110
+ useEffect(() => {
111
+ setSelectedFile(defaultValue);
112
+ }, [defaultValue]);
50
113
  return (<View style={[styles.container, style]}>
51
- <Text style={styles.fileName}>
52
- {selectedFile ? selectedFile.name : I18n.t('Base_ChooseFile')}
53
- </Text>
54
- <CircleButton iconName="plus" size={30} onPress={handleDocumentPick}/>
114
+ <Text style={styles.title}>{title}</Text>
115
+ <View style={[
116
+ commonStyles.filter,
117
+ commonStyles.filterSize,
118
+ commonStyles.filterAlign,
119
+ styles.content,
120
+ ]}>
121
+ {displayPreview && selectedFile != null ? (<Image imageSize={styles.imageSize} resizeMode="contain" source={isMetaFile(selectedFile)
122
+ ? {
123
+ uri: `${baseUrl}ws/rest/com.axelor.meta.db.MetaFile/${selectedFile?.id}/content/download`,
124
+ }
125
+ : { uri: selectedFile?.base64 }} defaultIconSize={60}/>) : null}
126
+ <Text style={styles.fileName} numberOfLines={1}>
127
+ {selectedFile ? selectedFile.name : I18n.t('Base_ChooseFile')}
128
+ </Text>
129
+ <View style={styles.buttons}>
130
+ {canDeleteFile && selectedFile != null && !readonly && (<CircleButton iconName="times" size={30} onPress={handleFileDelete} style={styles.action}/>)}
131
+ {isMetaFile(selectedFile) && (<CircleButton iconName="expand-alt" size={30} onPress={handleFileView} style={styles.action}/>)}
132
+ {selectedFile == null && !readonly && (<CircleButton iconName="plus" size={30} onPress={handleDocumentPick} style={styles.action}/>)}
133
+ </View>
134
+ </View>
135
+ {sizeError && (<Text textColor={Colors.errorColor.background} style={styles.error}>
136
+ {I18n.t('Base_FileSizeUploadError', {
137
+ maxSize: formatFileSize(_maxFileSize),
138
+ })}
139
+ </Text>)}
55
140
  </View>);
56
141
  };
57
- const styles = StyleSheet.create({
142
+ const getStyles = (Colors, _required) => StyleSheet.create({
58
143
  container: {
144
+ width: '90%',
145
+ alignSelf: 'center',
146
+ },
147
+ content: {
59
148
  width: '100%',
149
+ borderColor: _required
150
+ ? Colors.errorColor.background
151
+ : Colors.secondaryColor.background,
152
+ borderWidth: 1,
153
+ marginHorizontal: 0,
154
+ height: null,
155
+ minHeight: 40,
156
+ },
157
+ title: {
158
+ marginLeft: 10,
159
+ },
160
+ fileName: {
161
+ width: '60%',
162
+ },
163
+ buttons: {
60
164
  flexDirection: 'row',
61
- justifyContent: 'space-between',
165
+ justifyContent: 'space-around',
62
166
  alignItems: 'center',
63
- marginVertical: 5,
64
- paddingHorizontal: 18,
65
167
  },
66
- fileName: {
67
- width: '90%',
168
+ action: {
169
+ marginHorizontal: 2,
170
+ },
171
+ imageSize: {
172
+ height: 60,
173
+ width: 60,
174
+ },
175
+ error: {
176
+ marginLeft: 5,
68
177
  },
69
178
  });
70
179
  export default UploadFileInput;
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFileInput.js","sourceRoot":"","sources":["../../../../src/components/molecules/UploadFileInput/UploadFileInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,cAEN,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,YAAY,EAAE,IAAI,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAO5C,MAAM,eAAe,GAAG,CAAC,EACvB,KAAK,EACL,QAAQ,GAAG,OAAO,CAAC,GAAG,GACD,EAAE,EAAE;IACzB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,EAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE7E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEvD,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;QACpC,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC;gBAC3C,IAAI,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;aACnE,CAAC,CAAC;YAEH,eAAe,CAAC,IAAI,CAAC,CAAC;YAEtB,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACxB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;SAC/C;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAA4B,EAAE,EAAE;QAC9D,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAC,CAAC,CAAC;YACtE,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACpB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;SAClD;IACH,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CACrC;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC3B;QAAA,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAC/D;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,EACtE;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,KAAK,EAAE,MAAM;QACb,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,CAAC;QACjB,iBAAiB,EAAE,EAAE;KACtB;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,KAAK;KACb;CACF,CAAC,CAAC;AAEH,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"UploadFileInput.js","sourceRoot":"","sources":["../../../../src/components/molecules/UploadFileInput/UploadFileInput.tsx"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ interface DateInputProps {
6
6
  onDateChange: (date: Date) => void;
7
7
  style?: any;
8
8
  readonly?: boolean;
9
+ required?: boolean;
9
10
  }
10
- declare const DateInput: ({ title, defaultDate, mode, nullable, onDateChange, style, readonly, }: DateInputProps) => JSX.Element;
11
+ declare const DateInput: ({ title, defaultDate, mode, nullable, onDateChange, style, readonly, required, }: DateInputProps) => JSX.Element;
11
12
  export default DateInput;
@@ -22,18 +22,16 @@ import { Card, getCommonStyles, Icon, RightIconButton, Text, useClickOutside, us
22
22
  import { DatePicker } from '../../molecules';
23
23
  import DateInputUtils from './date-input.helper';
24
24
  const ACTION_ICON_SIZE = 30;
25
- const DateInput = ({ title, defaultDate, mode = 'datetime', nullable = false, onDateChange, style, readonly = false, }) => {
25
+ const DateInput = ({ title, defaultDate, mode = 'datetime', nullable = false, onDateChange, style, readonly = false, required = false, }) => {
26
26
  const Colors = useThemeColor();
27
27
  const I18n = useTranslator();
28
28
  const currentDate = useMemo(() => new Date(), []);
29
29
  const [pickerWidth, setPickerWidth] = useState();
30
30
  const [pickerIsOpen, setPickerIsOpen] = useState(false);
31
31
  const [selectedDate, setSelectedDate] = useState(defaultDate);
32
- const [isFocused, setIsFocused] = useState(false);
32
+ const _required = useMemo(() => required && selectedDate == null, [required, selectedDate]);
33
33
  useEffect(() => {
34
- if (defaultDate) {
35
- setSelectedDate(defaultDate);
36
- }
34
+ setSelectedDate(defaultDate);
37
35
  }, [defaultDate]);
38
36
  const wrapperRef = useRef(null);
39
37
  const clickOutside = useClickOutside({
@@ -43,13 +41,11 @@ const DateInput = ({ title, defaultDate, mode = 'datetime', nullable = false, on
43
41
  useEffect(() => {
44
42
  if (clickOutside === OUTSIDE_INDICATOR && pickerIsOpen) {
45
43
  setPickerIsOpen(false);
46
- setIsFocused(false);
47
44
  }
48
45
  }, [clickOutside, pickerIsOpen]);
49
46
  const togglePicker = () => {
50
47
  if (!readonly) {
51
48
  setPickerIsOpen(current => !current);
52
- setIsFocused(current => !current);
53
49
  }
54
50
  };
55
51
  const onCheckDate = useCallback(() => {
@@ -67,8 +63,8 @@ const DateInput = ({ title, defaultDate, mode = 'datetime', nullable = false, on
67
63
  setSelectedDate(null);
68
64
  setPickerIsOpen(false);
69
65
  }, []);
70
- const commonStyles = useMemo(() => getCommonStyles(Colors), [Colors]);
71
- const styles = useMemo(() => getStyles(Colors), [Colors]);
66
+ const commonStyles = useMemo(() => getCommonStyles(Colors, _required), [Colors, _required]);
67
+ const styles = useMemo(() => getStyles(Colors, pickerIsOpen, _required), [Colors, pickerIsOpen, _required]);
72
68
  return (<View ref={wrapperRef} style={[styles.container, style]}>
73
69
  <Text style={styles.title}>{title}</Text>
74
70
  <RightIconButton onPress={togglePicker} icon={!readonly && (<Icon name={DateInputUtils.getIconName(mode)} color={Colors.secondaryColor_dark.background}/>)} title={selectedDate
@@ -78,7 +74,7 @@ const DateInput = ({ title, defaultDate, mode = 'datetime', nullable = false, on
78
74
  commonStyles.filterSize,
79
75
  commonStyles.filterAlign,
80
76
  styles.rightIconButton,
81
- isFocused && commonStyles.inputFocused,
77
+ pickerIsOpen && commonStyles.inputFocused,
82
78
  ]}/>
83
79
  <View>
84
80
  {pickerIsOpen ? (<Card style={styles.selectionContainer}>
@@ -96,7 +92,7 @@ const DateInput = ({ title, defaultDate, mode = 'datetime', nullable = false, on
96
92
  </View>
97
93
  </View>);
98
94
  };
99
- const getStyles = Colors => StyleSheet.create({
95
+ const getStyles = (Colors, pickerIsOpen, required) => StyleSheet.create({
100
96
  actionButton: {
101
97
  marginLeft: 10,
102
98
  },
@@ -112,7 +108,9 @@ const getStyles = Colors => StyleSheet.create({
112
108
  flex: 1,
113
109
  },
114
110
  rightIconButton: {
115
- borderColor: Colors.secondaryColor.background,
111
+ borderColor: required
112
+ ? Colors.errorColor.background
113
+ : Colors.secondaryColor.background,
116
114
  borderWidth: 1,
117
115
  marginLeft: 0,
118
116
  width: '100%',