@axelor/aos-mobile-message 9.0.10 → 9.0.12

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.
@@ -1 +1,2 @@
1
1
  export { countUnreadMessages as countUnreadMessagesApi, fetchInboxMessages as fetchInboxMessagesApi, fetchMailMessages as fetchMailMessagesApi, fetchModelSubscribers as fetchModelSubscribersApi, fetchReplies as fetchRepliesApi, getAllUnreadFlagsOfMailMessage as getAllUnreadFlagsOfMailMessageApi, modifyMailMessagesFlags as modifyMailMessagesFlagsApi, postMailMessageComment as postMailMessageCommentApi, readAllMailMessages as readAllMailMessagesApi, subscribeRequest as subscribeRequestApi, unsubscribeRequest as unsubscribeRequestApi, } from './mail-message-api';
2
+ export { fetchModelFieldsMeta, type FieldMeta } from './meta-fields-api';
package/lib/api/index.js CHANGED
@@ -16,4 +16,5 @@
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
18
  export { countUnreadMessages as countUnreadMessagesApi, fetchInboxMessages as fetchInboxMessagesApi, fetchMailMessages as fetchMailMessagesApi, fetchModelSubscribers as fetchModelSubscribersApi, fetchReplies as fetchRepliesApi, getAllUnreadFlagsOfMailMessage as getAllUnreadFlagsOfMailMessageApi, modifyMailMessagesFlags as modifyMailMessagesFlagsApi, postMailMessageComment as postMailMessageCommentApi, readAllMailMessages as readAllMailMessagesApi, subscribeRequest as subscribeRequestApi, unsubscribeRequest as unsubscribeRequestApi, } from './mail-message-api';
19
+ export { fetchModelFieldsMeta } from './meta-fields-api';
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,mBAAmB,IAAI,sBAAsB,EAC7C,kBAAkB,IAAI,qBAAqB,EAC3C,iBAAiB,IAAI,oBAAoB,EACzC,qBAAqB,IAAI,wBAAwB,EACjD,YAAY,IAAI,eAAe,EAC/B,8BAA8B,IAAI,iCAAiC,EACnE,uBAAuB,IAAI,0BAA0B,EACrD,sBAAsB,IAAI,yBAAyB,EACnD,mBAAmB,IAAI,sBAAsB,EAC7C,gBAAgB,IAAI,mBAAmB,EACvC,kBAAkB,IAAI,qBAAqB,GAC5C,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,mBAAmB,IAAI,sBAAsB,EAC7C,kBAAkB,IAAI,qBAAqB,EAC3C,iBAAiB,IAAI,oBAAoB,EACzC,qBAAqB,IAAI,wBAAwB,EACjD,YAAY,IAAI,eAAe,EAC/B,8BAA8B,IAAI,iCAAiC,EACnE,uBAAuB,IAAI,0BAA0B,EACrD,sBAAsB,IAAI,yBAAyB,EACnD,mBAAmB,IAAI,sBAAsB,EAC7C,gBAAgB,IAAI,mBAAmB,EACvC,kBAAkB,IAAI,qBAAqB,GAC5C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,oBAAoB,EAAiB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type FieldMeta = {
2
+ title: string;
3
+ selectionTitles?: Record<string, string>;
4
+ };
5
+ export declare function fetchModelFieldsMeta(modelName: string): Promise<Record<string, FieldMeta>>;
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2026 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import { axiosApiProvider } from '@axelor/aos-mobile-core';
19
+ const cache = new Map();
20
+ export function fetchModelFieldsMeta(modelName) {
21
+ if (cache.has(modelName)) {
22
+ return cache.get(modelName);
23
+ }
24
+ const request = axiosApiProvider
25
+ .get({ url: `ws/meta/fields/${modelName}` })
26
+ .then(res => {
27
+ const fields = res?.data?.data?.fields ?? [];
28
+ return Object.fromEntries(fields
29
+ .filter(f => f.name && f.title)
30
+ .map(f => {
31
+ const meta = { title: f.title };
32
+ if (Array.isArray(f.selectionList) && f.selectionList.length > 0) {
33
+ meta.selectionTitles = Object.fromEntries(f.selectionList
34
+ .filter(s => s.value != null && s.title)
35
+ .map(s => [String(s.value), s.title]));
36
+ }
37
+ return [f.name, meta];
38
+ }));
39
+ })
40
+ .catch(() => ({}));
41
+ cache.set(modelName, request);
42
+ return request;
43
+ }
44
+ //# sourceMappingURL=meta-fields-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-fields-api.js","sourceRoot":"","sources":["../../src/api/meta-fields-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAOzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C,CAAC;AAEpE,MAAM,UAAU,oBAAoB,CAClC,SAAiB;IAEjB,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB;SAC7B,GAAG,CAAC,EAAC,GAAG,EAAE,kBAAkB,SAAS,EAAE,EAAC,CAAC;SACzC,IAAI,CAAC,GAAG,CAAC,EAAE;QACV,MAAM,MAAM,GAIN,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;QAEpC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM;aACH,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,IAAI,GAAc,EAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAC,CAAC;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CACvC,CAAC,CAAC,aAAa;qBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;qBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAErB,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -17,15 +17,17 @@
17
17
  */
18
18
  import React from 'react';
19
19
  import { StyleSheet } from 'react-native';
20
- import { getFromNowDate, useSelector } from '@axelor/aos-mobile-core';
20
+ import { getFromNowDate, useSelector, useTranslator, } from '@axelor/aos-mobile-core';
21
21
  import { Text } from '@axelor/aos-mobile-ui';
22
+ import { translateMailMessageText } from '../../../utils';
22
23
  const AuthorText = ({ author, eventText, eventTime }) => {
23
24
  const { user } = useSelector(state => state.user);
25
+ const I18n = useTranslator();
24
26
  return (<Text style={styles.author} fontSize={12}>
25
27
  <Text writingType="important" fontSize={12}>
26
28
  {author}{' '}
27
29
  </Text>
28
- {eventText}
30
+ {translateMailMessageText(eventText, I18n)}
29
31
  {' - '}
30
32
  <Text writingType="details" fontSize={12}>
31
33
  {getFromNowDate(eventTime, user?.localization?.language?.code)}
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorText.js","sourceRoot":"","sources":["../../../../src/components/atoms/AuthorText/AuthorText.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAC,IAAI,EAAC,MAAM,uBAAuB,CAAC;AAQ3C,MAAM,UAAU,GAAG,CAAC,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAkB,EAAE,EAAE;IACrE,MAAM,EAAC,IAAI,EAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhD,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACvC;MAAA,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACzC;QAAA,CAAC,MAAM,CAAC,CAAC,GAAG,CACd;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,SAAS,CACV;MAAA,CAAC,KAAK,CACN;MAAA,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACvC;QAAA,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAChE;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE;QACN,WAAW,EAAE,EAAE;KAChB;CACF,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"AuthorText.js","sourceRoot":"","sources":["../../../../src/components/atoms/AuthorText/AuthorText.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,IAAI,EAAC,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AAQxD,MAAM,UAAU,GAAG,CAAC,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAkB,EAAE,EAAE;IACrE,MAAM,EAAC,IAAI,EAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACvC;MAAA,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACzC;QAAA,CAAC,MAAM,CAAC,CAAC,GAAG,CACd;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAC1C;MAAA,CAAC,KAAK,CACN;MAAA,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACvC;QAAA,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAChE;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE;QACN,WAAW,EAAE,EAAE;KAChB;CACF,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -18,17 +18,22 @@
18
18
  import React, { useMemo, useState } from 'react';
19
19
  import { StyleSheet, TouchableOpacity, View } from 'react-native';
20
20
  import { Card, Icon, LabelText, useThemeColor, UnorderedList, Badge, } from '@axelor/aos-mobile-ui';
21
+ import { useTranslator } from '@axelor/aos-mobile-core';
21
22
  import { MessageFlags, TrackItem } from '../../atoms';
22
23
  import { MailMessageNotificationType } from '../../../types';
24
+ import { useTrackFieldTitles } from '../../../hooks';
25
+ import { translateMailMessageText } from '../../../utils';
23
26
  const MAX_TRACK_ITEMS = 5;
24
27
  const NotificationCard = ({ relatedModel, relatedId, relatedName, subject, tag, tracks, flags, style, customTopComponent, isInbox, }) => {
25
28
  const Colors = useThemeColor();
29
+ const I18n = useTranslator();
26
30
  const [moreItems, setMoreItems] = useState(false);
31
+ const fieldMeta = useTrackFieldTitles(relatedModel);
27
32
  const displayFlags = useMemo(() => relatedModel != null && relatedId != null && flags != null, [flags, relatedId, relatedModel]);
28
33
  return (<TouchableOpacity style={style} onPress={() => setMoreItems(!moreItems)} disabled={(tracks?.length ?? 0) < MAX_TRACK_ITEMS} activeOpacity={0.9}>
29
34
  <Card style={styles.card}>
30
35
  <View style={styles.cardHeader}>
31
- <LabelText iconName="info-circle-fill" size={18} title={relatedName} value={subject} style={styles.flexOne} textStyle={styles.flexOne} textSize={16} color={Colors.primaryColor.background}/>
36
+ <LabelText iconName="info-circle-fill" size={18} title={relatedName} value={translateMailMessageText(subject, I18n)} style={styles.flexOne} textStyle={styles.flexOne} textSize={16} color={Colors.primaryColor.background}/>
32
37
  {customTopComponent && React.cloneElement(customTopComponent)}
33
38
  {tag && (<View style={styles.tagContainer}>
34
39
  <Badge title={tag.title} color={MailMessageNotificationType.getTagColor(tag.style, Colors)} txtStyle={styles.tagTxt}/>
@@ -36,7 +41,13 @@ const NotificationCard = ({ relatedModel, relatedId, relatedName, subject, tag,
36
41
  {displayFlags && (<MessageFlags flags={flags} model={relatedModel} modelId={relatedId} isInbox={isInbox}/>)}
37
42
  </View>
38
43
  {tracks && (<>
39
- <UnorderedList data={tracks} numberOfItems={!moreItems && tracks.length > MAX_TRACK_ITEMS && MAX_TRACK_ITEMS} renderItem={({ item }) => (<TrackItem title={item.title} oldDisplayValue={item.oldDisplayValue} oldValue={item.oldValue} displayValue={item.displayValue} value={item.value}/>)}/>
44
+ <UnorderedList data={tracks} numberOfItems={!moreItems && tracks.length > MAX_TRACK_ITEMS
45
+ ? MAX_TRACK_ITEMS
46
+ : undefined} renderItem={({ item }) => {
47
+ const meta = fieldMeta[item.name];
48
+ return (<TrackItem title={meta?.title ?? item.title} oldDisplayValue={meta?.selectionTitles?.[item.oldValue] ??
49
+ item.oldDisplayValue} oldValue={item.oldValue} displayValue={meta?.selectionTitles?.[item.value] ?? item.displayValue} value={item.value}/>);
50
+ }}/>
40
51
  {tracks.length > MAX_TRACK_ITEMS && (<Icon name={moreItems ? 'chevron-up' : 'chevron-down'} color={Colors.primaryColor.background} style={styles.moreIcon}/>)}
41
52
  </>)}
42
53
  </Card>
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationCard.js","sourceRoot":"","sources":["../../../../src/components/molecules/NotificationCard/NotificationCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotificationCard.js","sourceRoot":"","sources":["../../../../src/components/molecules/NotificationCard/NotificationCard.tsx"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export { useIsSubscribed } from './use-is-subscribed';
2
+ export { useTrackFieldTitles } from './use-track-field-titles';
@@ -16,4 +16,5 @@
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
18
  export { useIsSubscribed } from './use-is-subscribed';
19
+ export { useTrackFieldTitles } from './use-track-field-titles';
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { FieldMeta } from '../api/meta-fields-api';
2
+ export declare function useTrackFieldTitles(modelName?: string): Record<string, FieldMeta>;
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2026 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import { useEffect, useState } from 'react';
19
+ import { fetchModelFieldsMeta } from '../api/meta-fields-api';
20
+ export function useTrackFieldTitles(modelName) {
21
+ const [fieldMeta, setFieldMeta] = useState({});
22
+ useEffect(() => {
23
+ if (!modelName)
24
+ return;
25
+ let cancelled = false;
26
+ fetchModelFieldsMeta(modelName)
27
+ .then(meta => {
28
+ if (!cancelled) {
29
+ setFieldMeta(meta);
30
+ }
31
+ })
32
+ .catch(() => { });
33
+ return () => {
34
+ cancelled = true;
35
+ };
36
+ }, [modelName]);
37
+ return fieldMeta;
38
+ }
39
+ //# sourceMappingURL=use-track-field-titles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-track-field-titles.js","sourceRoot":"","sources":["../../src/hooks/use-track-field-titles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAY,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAEvE,MAAM,UAAU,mBAAmB,CACjC,SAAkB;IAElB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA4B,EAAE,CAAC,CAAC;IAE1E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,oBAAoB,CAAC,SAAS,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEnB,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/lib/i18n/en.json CHANGED
@@ -20,6 +20,10 @@
20
20
  "Message_ArchivedMessages": "Archived messages",
21
21
  "Message_LinkFiles": "Link files",
22
22
  "Message_InvalidFile": "This file is not valid as it does not contain any document.",
23
+ "Message_UpdatedDocument": "updated document",
24
+ "Message_AddedComment": "added comment",
25
+ "Message_RecordCreated": "Record created",
26
+ "Message_RecordUpdated": "Record updated",
23
27
  "Message_SliceAction_FetchMailMessages": "fetch mail messages",
24
28
  "Message_SliceAction_PostMailMessageComment": "post mail message comment",
25
29
  "Message_SliceAction_FetchModelSubscribers": "fetch model subscribers",
package/lib/i18n/fr.json CHANGED
@@ -20,6 +20,10 @@
20
20
  "Message_ArchivedMessages": "Messages archivés",
21
21
  "Message_LinkFiles": "Lier des fichiers",
22
22
  "Message_InvalidFile": "Cet enregistrement est invalide car il ne contient aucun fichier.",
23
+ "Message_UpdatedDocument": "a mis à jour le document",
24
+ "Message_AddedComment": "a ajouté un commentaire",
25
+ "Message_RecordCreated": "Enregistrement créé",
26
+ "Message_RecordUpdated": "Enregistrement mis à jour",
23
27
  "Message_SliceAction_FetchMailMessages": "récupération des mail messages",
24
28
  "Message_SliceAction_PostMailMessageComment": "ajout d'un mail message",
25
29
  "Message_SliceAction_FetchModelSubscribers": "récupération des abonnés du modèle",
@@ -40,7 +40,7 @@ class MailMessageNotificationType {
40
40
  return Colors.infoColor;
41
41
  default:
42
42
  console.warn(`Style provided with value ${style} is not supported by Mail Message Tag`);
43
- return null;
43
+ return undefined;
44
44
  }
45
45
  };
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mail-message-notification-type.js","sourceRoot":"","sources":["../../src/types/mail-message-notification-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,2BAA2B;IAC/B,MAAM,CAAC,KAAK,GAAG;QACb,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;KACb,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE;QAC1D,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;gBACvB,OAAO,MAAM,CAAC,cAAc,CAAC;YAC/B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;gBAClB,OAAO,MAAM,CAAC,SAAS,CAAC;YAC1B;gBACE,OAAO,CAAC,IAAI,CACV,6BAA6B,KAAK,uCAAuC,CAC1E,CAAC;gBACF,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;;AAGJ,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"mail-message-notification-type.js","sourceRoot":"","sources":["../../src/types/mail-message-notification-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,2BAA2B;IAC/B,MAAM,CAAC,KAAK,GAAG;QACb,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;KACb,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE;QAC1D,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;gBACvB,OAAO,MAAM,CAAC,cAAc,CAAC;YAC/B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBACrB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;gBAClB,OAAO,MAAM,CAAC,SAAS,CAAC;YAC1B;gBACE,OAAO,CAAC,IAAI,CACV,6BAA6B,KAAK,uCAAuC,CAC1E,CAAC;gBACF,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;;AAGJ,eAAe,2BAA2B,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './date';
2
+ export * from './mail-message-translation';
2
3
  export * from './mailMessagesGenericAction';
@@ -16,5 +16,6 @@
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
18
  export * from './date';
19
+ export * from './mail-message-translation';
19
20
  export * from './mailMessagesGenericAction';
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { TranslatorProps } from '@axelor/aos-mobile-core';
2
+ export declare const translateMailMessageText: (text: string, I18n: TranslatorProps) => string;
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2026 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ const toTranslationKey = (text) => 'Message_' +
19
+ text
20
+ .replace(/[^a-zA-Z0-9\s]/g, '')
21
+ .split(/\s+/)
22
+ .filter(Boolean)
23
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
24
+ .join('');
25
+ export const translateMailMessageText = (text, I18n) => {
26
+ if (!text)
27
+ return text;
28
+ const key = toTranslationKey(text);
29
+ const translated = I18n.t(key);
30
+ return translated === key ? text : translated;
31
+ };
32
+ //# sourceMappingURL=mail-message-translation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-message-translation.js","sourceRoot":"","sources":["../../src/utils/mail-message-translation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CAChD,UAAU;IACV,IAAI;SACD,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACzD,IAAI,CAAC,EAAE,CAAC,CAAC;AAEd,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,IAAY,EACZ,IAAqB,EACb,EAAE;IACV,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AAChD,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axelor/aos-mobile-message",
3
- "version": "9.0.10",
3
+ "version": "9.0.12",
4
4
  "author": "Axelor",
5
5
  "license": "AGPL-3.0-only",
6
6
  "publishConfig": {
@@ -24,24 +24,24 @@
24
24
  },
25
25
  "peerDependencies": {
26
26
  "react": "19.2.0",
27
- "react-native": "0.83.1"
27
+ "react-native": "0.83.9"
28
28
  },
29
29
  "dependencies": {
30
- "@axelor/aos-mobile-core": "9.0.10",
31
- "@axelor/aos-mobile-dms": "9.0.10",
32
- "@axelor/aos-mobile-ui": "9.0.10",
30
+ "@axelor/aos-mobile-core": "9.0.12",
31
+ "@axelor/aos-mobile-dms": "9.0.12",
32
+ "@axelor/aos-mobile-ui": "9.0.12",
33
33
  "@reduxjs/toolkit": "2.11.2"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@babel/runtime": "^7.25.0",
37
- "@react-native/babel-preset": "0.83.1",
38
- "@react-native/eslint-config": "0.83.1",
39
- "@react-native/typescript-config": "0.83.1",
37
+ "@react-native/babel-preset": "0.83.9",
38
+ "@react-native/eslint-config": "0.83.9",
39
+ "@react-native/typescript-config": "0.83.9",
40
40
  "@types/react": "^19.2.0",
41
41
  "eslint": "8.57.0",
42
42
  "prettier": "^3.3.3",
43
43
  "react": "19.2.0",
44
- "react-native": "0.83.1"
44
+ "react-native": "0.83.9"
45
45
  },
46
46
  "resolutions": {
47
47
  "@types/react": "^19.2.0"