@inorain_development/hotel-smarters-chat-ui 1.1.1 → 1.2.2

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 (34) hide show
  1. package/lib/commonjs/features/chat/components/event/event.js +5 -3
  2. package/lib/commonjs/features/chat/components/event/event.js.map +1 -1
  3. package/lib/commonjs/features/chat/components/event/event.native.js +5 -3
  4. package/lib/commonjs/features/chat/components/event/event.native.js.map +1 -1
  5. package/lib/commonjs/utils/price.utils.js +4 -4
  6. package/lib/commonjs/utils/price.utils.js.map +1 -1
  7. package/lib/commonjs/utils/time.utils.js +51 -0
  8. package/lib/commonjs/utils/time.utils.js.map +1 -0
  9. package/lib/module/features/chat/components/event/event.js +5 -3
  10. package/lib/module/features/chat/components/event/event.js.map +1 -1
  11. package/lib/module/features/chat/components/event/event.native.js +5 -3
  12. package/lib/module/features/chat/components/event/event.native.js.map +1 -1
  13. package/lib/module/utils/price.utils.js +4 -4
  14. package/lib/module/utils/price.utils.js.map +1 -1
  15. package/lib/module/utils/time.utils.js +46 -0
  16. package/lib/module/utils/time.utils.js.map +1 -0
  17. package/lib/typescript/commonjs/features/chat/components/event/event.d.ts.map +1 -1
  18. package/lib/typescript/commonjs/features/chat/components/event/event.model.d.ts +3 -1
  19. package/lib/typescript/commonjs/features/chat/components/event/event.model.d.ts.map +1 -1
  20. package/lib/typescript/commonjs/features/chat/components/event/event.native.d.ts.map +1 -1
  21. package/lib/typescript/commonjs/utils/time.utils.d.ts +3 -0
  22. package/lib/typescript/commonjs/utils/time.utils.d.ts.map +1 -0
  23. package/lib/typescript/module/features/chat/components/event/event.d.ts.map +1 -1
  24. package/lib/typescript/module/features/chat/components/event/event.model.d.ts +3 -1
  25. package/lib/typescript/module/features/chat/components/event/event.model.d.ts.map +1 -1
  26. package/lib/typescript/module/features/chat/components/event/event.native.d.ts.map +1 -1
  27. package/lib/typescript/module/utils/time.utils.d.ts +3 -0
  28. package/lib/typescript/module/utils/time.utils.d.ts.map +1 -0
  29. package/package.json +1 -1
  30. package/src/features/chat/components/event/event.model.ts +3 -1
  31. package/src/features/chat/components/event/event.native.tsx +6 -2
  32. package/src/features/chat/components/event/event.tsx +6 -2
  33. package/src/utils/price.utils.ts +4 -4
  34. package/src/utils/time.utils.ts +58 -0
@@ -7,6 +7,7 @@ exports.Event = Event;
7
7
  var _themeUtils = require("../../../../utils/theme.utils.js");
8
8
  var _i18nUtils = require("../../../../utils/i18n.utils.js");
9
9
  var _priceUtils = require("../../../../utils/price.utils.js");
10
+ var _timeUtils = require("../../../../utils/time.utils.js");
10
11
  var _useExpandableList = require("../../../../utils/use-expandable-list.js");
11
12
  var _collapsible = require("../common/collapsible");
12
13
  var _clockIcon = require("../common/clock-icon");
@@ -33,6 +34,7 @@ function Event({
33
34
  const location = (0, _i18nUtils.resolveText)(item.location, language);
34
35
  const description = item.description ? (0, _i18nUtils.resolveText)(item.description, language) : '';
35
36
  const isFree = (0, _priceUtils.isFreePrice)(item.price);
37
+ const dateLabel = (0, _timeUtils.formatEventDate)(item.startDateTime, item.endDateTime) || ((0, _timeUtils.hasEventTime)(item.time) ? item.time : '');
36
38
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
37
39
  className: `rounded-2xl border p-3 ${c.surface} ${c.border}`,
38
40
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
@@ -56,12 +58,12 @@ function Event({
56
58
  })]
57
59
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
58
60
  className: "flex items-center gap-1.5",
59
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_clockIcon.ClockIcon, {
61
+ children: [dateLabel ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_clockIcon.ClockIcon, {
60
62
  size: 16,
61
63
  color: c.iconColor
62
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
64
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
63
65
  className: `truncate text-sm down-sm:text-xs ${c.subtitle}`,
64
- children: [item.time, " \xB7 ", location]
66
+ children: dateLabel ? `${dateLabel} · ${location}` : location
65
67
  })]
66
68
  }), description ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
67
69
  className: `line-clamp-2 text-sm down-sm:text-xs ${c.subtitle}`,
@@ -1 +1 @@
1
- {"version":3,"names":["_themeUtils","require","_i18nUtils","_priceUtils","_useExpandableList","_collapsible","_clockIcon","_chatModel","_jsxRuntime","FREE_LABEL","Event","data","theme","Theme","Dark","language","onSelect","c","getThemeClasses","items","Array","isArray","head","rest","expanded","hasMore","toggle","useExpandableList","renderCard","item","name","resolveText","location","description","isFree","isFreePrice","price","jsx","className","surface","border","children","jsxs","src","image","alt","onClick","iconBg","title","free","ClockIcon","size","color","iconColor","subtitle","time","map","index","undefined","id","Fragment","Collapsible","type","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/event/event.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_themeUtils","require","_i18nUtils","_priceUtils","_timeUtils","_useExpandableList","_collapsible","_clockIcon","_chatModel","_jsxRuntime","FREE_LABEL","Event","data","theme","Theme","Dark","language","onSelect","c","getThemeClasses","items","Array","isArray","head","rest","expanded","hasMore","toggle","useExpandableList","renderCard","item","name","resolveText","location","description","isFree","isFreePrice","price","dateLabel","formatEventDate","startDateTime","endDateTime","hasEventTime","time","jsx","className","surface","border","children","jsxs","src","image","alt","onClick","iconBg","title","free","ClockIcon","size","color","iconColor","subtitle","map","index","undefined","id","Fragment","Collapsible","type","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/event/event.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ var _reactNative = require("react-native");
8
8
  var _themeUtils = require("../../../../utils/theme.utils.js");
9
9
  var _i18nUtils = require("../../../../utils/i18n.utils.js");
10
10
  var _priceUtils = require("../../../../utils/price.utils.js");
11
+ var _timeUtils = require("../../../../utils/time.utils.js");
11
12
  var _useExpandableList = require("../../../../utils/use-expandable-list.js");
12
13
  var _collapsibleNative = require("../common/collapsible.native.js");
13
14
  var _clockIconNative = require("../common/clock-icon.native.js");
@@ -34,6 +35,7 @@ function Event({
34
35
  const location = (0, _i18nUtils.resolveText)(item.location, language);
35
36
  const description = item.description ? (0, _i18nUtils.resolveText)(item.description, language) : '';
36
37
  const isFree = (0, _priceUtils.isFreePrice)(item.price);
38
+ const dateLabel = (0, _timeUtils.formatEventDate)(item.startDateTime, item.endDateTime) || ((0, _timeUtils.hasEventTime)(item.time) ? item.time : '');
37
39
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
38
40
  className: `rounded-2xl border p-3 ${c.surface} ${c.border}`,
39
41
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -62,13 +64,13 @@ function Event({
62
64
  })]
63
65
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
64
66
  className: "flex-row items-center gap-1.5",
65
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_clockIconNative.ClockIcon, {
67
+ children: [dateLabel ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_clockIconNative.ClockIcon, {
66
68
  size: 16,
67
69
  color: c.iconColor
68
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
70
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
69
71
  className: `flex-1 text-sm down-sm:text-xs ${c.subtitle}`,
70
72
  numberOfLines: 1,
71
- children: [item.time, " \xB7 ", location]
73
+ children: dateLabel ? `${dateLabel} · ${location}` : location
72
74
  })]
73
75
  }), description ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
74
76
  className: `text-sm down-sm:text-xs ${c.subtitle}`,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_themeUtils","_i18nUtils","_priceUtils","_useExpandableList","_collapsibleNative","_clockIconNative","_chatModel","_jsxRuntime","FREE_LABEL","Event","data","theme","Theme","Dark","language","onSelect","c","getThemeClasses","items","Array","isArray","head","rest","expanded","hasMore","toggle","useExpandableList","renderCard","item","name","resolveText","location","description","isFree","isFreePrice","price","jsx","View","className","surface","border","children","jsxs","Pressable","onPress","Image","accessibilityLabel","source","uri","image","iconBg","Text","title","numberOfLines","free","ClockIcon","size","color","iconColor","subtitle","time","map","index","undefined","id","Fragment","Collapsible","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/event/event.native.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_themeUtils","_i18nUtils","_priceUtils","_timeUtils","_useExpandableList","_collapsibleNative","_clockIconNative","_chatModel","_jsxRuntime","FREE_LABEL","Event","data","theme","Theme","Dark","language","onSelect","c","getThemeClasses","items","Array","isArray","head","rest","expanded","hasMore","toggle","useExpandableList","renderCard","item","name","resolveText","location","description","isFree","isFreePrice","price","dateLabel","formatEventDate","startDateTime","endDateTime","hasEventTime","time","jsx","View","className","surface","border","children","jsxs","Pressable","onPress","Image","accessibilityLabel","source","uri","image","iconBg","Text","title","numberOfLines","free","ClockIcon","size","color","iconColor","subtitle","map","index","undefined","id","Fragment","Collapsible","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/event/event.native.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.isFreePrice = isFreePrice;
7
7
  function isFreePrice(price) {
8
8
  if (price == null) return true;
9
- if (typeof price === 'number') return price === 0;
10
- const trimmed = price.trim();
11
- if (trimmed === '') return true;
9
+ if (typeof price === 'number') return !Number.isFinite(price) || price === 0;
10
+ const trimmed = price.trim().toLowerCase();
11
+ if (trimmed === '' || trimmed.includes('undefined') || trimmed.includes('null')) return true;
12
12
  const numeric = parseFloat(trimmed.replace(/[^0-9.,-]/g, '').replace(',', '.'));
13
- return Number.isFinite(numeric) && numeric === 0;
13
+ return !Number.isFinite(numeric) || numeric === 0;
14
14
  }
15
15
  //# sourceMappingURL=price.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isFreePrice","price","trimmed","trim","numeric","parseFloat","replace","Number","isFinite"],"sourceRoot":"../../../src","sources":["utils/price.utils.ts"],"mappings":";;;;;;AAAO,SAASA,WAAWA,CAACC,KAA8B,EAAW;EACnE,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;EAC9B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK,KAAK,CAAC;EAEjD,MAAMC,OAAO,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;EAC5B,IAAID,OAAO,KAAK,EAAE,EAAE,OAAO,IAAI;EAE/B,MAAME,OAAO,GAAGC,UAAU,CAACH,OAAO,CAACI,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;EAC/E,OAAOC,MAAM,CAACC,QAAQ,CAACJ,OAAO,CAAC,IAAIA,OAAO,KAAK,CAAC;AAClD","ignoreList":[]}
1
+ {"version":3,"names":["isFreePrice","price","Number","isFinite","trimmed","trim","toLowerCase","includes","numeric","parseFloat","replace"],"sourceRoot":"../../../src","sources":["utils/price.utils.ts"],"mappings":";;;;;;AAAO,SAASA,WAAWA,CAACC,KAA8B,EAAW;EACnE,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;EAC9B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,CAACC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,IAAIA,KAAK,KAAK,CAAC;EAE5E,MAAMG,OAAO,GAAGH,KAAK,CAACI,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAC1C,IAAIF,OAAO,KAAK,EAAE,IAAIA,OAAO,CAACG,QAAQ,CAAC,WAAW,CAAC,IAAIH,OAAO,CAACG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI;EAE5F,MAAMC,OAAO,GAAGC,UAAU,CAACL,OAAO,CAACM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;EAC/E,OAAO,CAACR,MAAM,CAACC,QAAQ,CAACK,OAAO,CAAC,IAAIA,OAAO,KAAK,CAAC;AACnD","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatEventDate = formatEventDate;
7
+ exports.hasEventTime = hasEventTime;
8
+ function parseDate(value) {
9
+ if (value == null) return null;
10
+ const trimmed = value.trim();
11
+ if (trimmed === '') return null;
12
+ const date = new Date(trimmed);
13
+ return Number.isNaN(date.getTime()) ? null : date;
14
+ }
15
+ function formatDateTime(date) {
16
+ return date.toLocaleString('en-US', {
17
+ month: 'short',
18
+ day: 'numeric',
19
+ year: 'numeric',
20
+ hour: 'numeric',
21
+ minute: '2-digit'
22
+ });
23
+ }
24
+ function formatTime(date) {
25
+ return date.toLocaleTimeString('en-US', {
26
+ hour: 'numeric',
27
+ minute: '2-digit'
28
+ });
29
+ }
30
+ function isSameDay(a, b) {
31
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
32
+ }
33
+ function hasEventTime(time) {
34
+ if (time == null) return false;
35
+ const trimmed = time.trim().toLowerCase();
36
+ if (trimmed === '' || trimmed.includes('undefined') || trimmed.includes('null')) return false;
37
+ return !/^0{1,2}:0{2}(:0{2})?$/.test(trimmed);
38
+ }
39
+ function formatEventDate(startDateTime, endDateTime) {
40
+ const start = parseDate(startDateTime);
41
+ if (!start) return '';
42
+ const end = parseDate(endDateTime);
43
+ if (end && !isSameDay(start, end)) {
44
+ return `${formatDateTime(start)} – ${formatDateTime(end)}`;
45
+ }
46
+ if (end) {
47
+ return `${formatDateTime(start)} – ${formatTime(end)}`;
48
+ }
49
+ return formatDateTime(start);
50
+ }
51
+ //# sourceMappingURL=time.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseDate","value","trimmed","trim","date","Date","Number","isNaN","getTime","formatDateTime","toLocaleString","month","day","year","hour","minute","formatTime","toLocaleTimeString","isSameDay","a","b","getFullYear","getMonth","getDate","hasEventTime","time","toLowerCase","includes","test","formatEventDate","startDateTime","endDateTime","start","end"],"sourceRoot":"../../../src","sources":["utils/time.utils.ts"],"mappings":";;;;;;;AAAA,SAASA,SAASA,CAACC,KAAqB,EAAe;EACrD,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;EAE9B,MAAMC,OAAO,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;EAC5B,IAAID,OAAO,KAAK,EAAE,EAAE,OAAO,IAAI;EAE/B,MAAME,IAAI,GAAG,IAAIC,IAAI,CAACH,OAAO,CAAC;EAC9B,OAAOI,MAAM,CAACC,KAAK,CAACH,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGJ,IAAI;AACnD;AAEA,SAASK,cAAcA,CAACL,IAAU,EAAU;EAC1C,OAAOA,IAAI,CAACM,cAAc,CAAC,OAAO,EAAE;IAClCC,KAAK,EAAE,OAAO;IACdC,GAAG,EAAE,SAAS;IACdC,IAAI,EAAE,SAAS;IACfC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC,CAAC;AACJ;AAEA,SAASC,UAAUA,CAACZ,IAAU,EAAU;EACtC,OAAOA,IAAI,CAACa,kBAAkB,CAAC,OAAO,EAAE;IACtCH,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC,CAAC;AACJ;AAEA,SAASG,SAASA,CAACC,CAAO,EAAEC,CAAO,EAAW;EAC5C,OACED,CAAC,CAACE,WAAW,CAAC,CAAC,KAAKD,CAAC,CAACC,WAAW,CAAC,CAAC,IACnCF,CAAC,CAACG,QAAQ,CAAC,CAAC,KAAKF,CAAC,CAACE,QAAQ,CAAC,CAAC,IAC7BH,CAAC,CAACI,OAAO,CAAC,CAAC,KAAKH,CAAC,CAACG,OAAO,CAAC,CAAC;AAE/B;AAEO,SAASC,YAAYA,CAACC,IAAoB,EAAW;EAC1D,IAAIA,IAAI,IAAI,IAAI,EAAE,OAAO,KAAK;EAE9B,MAAMvB,OAAO,GAAGuB,IAAI,CAACtB,IAAI,CAAC,CAAC,CAACuB,WAAW,CAAC,CAAC;EACzC,IAAIxB,OAAO,KAAK,EAAE,IAAIA,OAAO,CAACyB,QAAQ,CAAC,WAAW,CAAC,IAAIzB,OAAO,CAACyB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK;EAE7F,OAAO,CAAC,uBAAuB,CAACC,IAAI,CAAC1B,OAAO,CAAC;AAC/C;AAEO,SAAS2B,eAAeA,CAACC,aAA6B,EAAEC,WAA2B,EAAU;EAClG,MAAMC,KAAK,GAAGhC,SAAS,CAAC8B,aAAa,CAAC;EACtC,IAAI,CAACE,KAAK,EAAE,OAAO,EAAE;EAErB,MAAMC,GAAG,GAAGjC,SAAS,CAAC+B,WAAW,CAAC;EAClC,IAAIE,GAAG,IAAI,CAACf,SAAS,CAACc,KAAK,EAAEC,GAAG,CAAC,EAAE;IACjC,OAAO,GAAGxB,cAAc,CAACuB,KAAK,CAAC,MAAMvB,cAAc,CAACwB,GAAG,CAAC,EAAE;EAC5D;EACA,IAAIA,GAAG,EAAE;IACP,OAAO,GAAGxB,cAAc,CAACuB,KAAK,CAAC,MAAMhB,UAAU,CAACiB,GAAG,CAAC,EAAE;EACxD;EAEA,OAAOxB,cAAc,CAACuB,KAAK,CAAC;AAC9B","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import { getThemeClasses } from "../../../../utils/theme.utils.js";
4
4
  import { resolveText } from "../../../../utils/i18n.utils.js";
5
5
  import { isFreePrice } from "../../../../utils/price.utils.js";
6
+ import { formatEventDate, hasEventTime } from "../../../../utils/time.utils.js";
6
7
  import { useExpandableList } from "../../../../utils/use-expandable-list.js";
7
8
  import { Collapsible } from '../common/collapsible';
8
9
  import { ClockIcon } from '../common/clock-icon';
@@ -29,6 +30,7 @@ export function Event({
29
30
  const location = resolveText(item.location, language);
30
31
  const description = item.description ? resolveText(item.description, language) : '';
31
32
  const isFree = isFreePrice(item.price);
33
+ const dateLabel = formatEventDate(item.startDateTime, item.endDateTime) || (hasEventTime(item.time) ? item.time : '');
32
34
  return /*#__PURE__*/_jsx("div", {
33
35
  className: `rounded-2xl border p-3 ${c.surface} ${c.border}`,
34
36
  children: /*#__PURE__*/_jsxs("div", {
@@ -52,12 +54,12 @@ export function Event({
52
54
  })]
53
55
  }), /*#__PURE__*/_jsxs("div", {
54
56
  className: "flex items-center gap-1.5",
55
- children: [/*#__PURE__*/_jsx(ClockIcon, {
57
+ children: [dateLabel ? /*#__PURE__*/_jsx(ClockIcon, {
56
58
  size: 16,
57
59
  color: c.iconColor
58
- }), /*#__PURE__*/_jsxs("span", {
60
+ }) : null, /*#__PURE__*/_jsx("span", {
59
61
  className: `truncate text-sm down-sm:text-xs ${c.subtitle}`,
60
- children: [item.time, " \xB7 ", location]
62
+ children: dateLabel ? `${dateLabel} · ${location}` : location
61
63
  })]
62
64
  }), description ? /*#__PURE__*/_jsx("span", {
63
65
  className: `line-clamp-2 text-sm down-sm:text-xs ${c.subtitle}`,
@@ -1 +1 @@
1
- {"version":3,"names":["getThemeClasses","resolveText","isFreePrice","useExpandableList","Collapsible","ClockIcon","Theme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FREE_LABEL","Event","data","theme","Dark","language","onSelect","c","items","Array","isArray","head","rest","expanded","hasMore","toggle","renderCard","item","name","location","description","isFree","price","className","surface","border","children","src","image","alt","onClick","iconBg","title","free","size","color","iconColor","subtitle","time","map","index","undefined","id","type","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/event/event.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getThemeClasses","resolveText","isFreePrice","formatEventDate","hasEventTime","useExpandableList","Collapsible","ClockIcon","Theme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FREE_LABEL","Event","data","theme","Dark","language","onSelect","c","items","Array","isArray","head","rest","expanded","hasMore","toggle","renderCard","item","name","location","description","isFree","price","dateLabel","startDateTime","endDateTime","time","className","surface","border","children","src","image","alt","onClick","iconBg","title","free","size","color","iconColor","subtitle","map","index","undefined","id","type","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/event/event.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import { Image, Pressable, Text, View } from 'react-native';
4
4
  import { getThemeClasses } from "../../../../utils/theme.utils.js";
5
5
  import { resolveText } from "../../../../utils/i18n.utils.js";
6
6
  import { isFreePrice } from "../../../../utils/price.utils.js";
7
+ import { formatEventDate, hasEventTime } from "../../../../utils/time.utils.js";
7
8
  import { useExpandableList } from "../../../../utils/use-expandable-list.js";
8
9
  import { Collapsible } from "../common/collapsible.native.js";
9
10
  import { ClockIcon } from "../common/clock-icon.native.js";
@@ -30,6 +31,7 @@ export function Event({
30
31
  const location = resolveText(item.location, language);
31
32
  const description = item.description ? resolveText(item.description, language) : '';
32
33
  const isFree = isFreePrice(item.price);
34
+ const dateLabel = formatEventDate(item.startDateTime, item.endDateTime) || (hasEventTime(item.time) ? item.time : '');
33
35
  return /*#__PURE__*/_jsx(View, {
34
36
  className: `rounded-2xl border p-3 ${c.surface} ${c.border}`,
35
37
  children: /*#__PURE__*/_jsxs(View, {
@@ -58,13 +60,13 @@ export function Event({
58
60
  })]
59
61
  }), /*#__PURE__*/_jsxs(View, {
60
62
  className: "flex-row items-center gap-1.5",
61
- children: [/*#__PURE__*/_jsx(ClockIcon, {
63
+ children: [dateLabel ? /*#__PURE__*/_jsx(ClockIcon, {
62
64
  size: 16,
63
65
  color: c.iconColor
64
- }), /*#__PURE__*/_jsxs(Text, {
66
+ }) : null, /*#__PURE__*/_jsx(Text, {
65
67
  className: `flex-1 text-sm down-sm:text-xs ${c.subtitle}`,
66
68
  numberOfLines: 1,
67
- children: [item.time, " \xB7 ", location]
69
+ children: dateLabel ? `${dateLabel} · ${location}` : location
68
70
  })]
69
71
  }), description ? /*#__PURE__*/_jsx(Text, {
70
72
  className: `text-sm down-sm:text-xs ${c.subtitle}`,
@@ -1 +1 @@
1
- {"version":3,"names":["Image","Pressable","Text","View","getThemeClasses","resolveText","isFreePrice","useExpandableList","Collapsible","ClockIcon","Theme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FREE_LABEL","Event","data","theme","Dark","language","onSelect","c","items","Array","isArray","head","rest","expanded","hasMore","toggle","renderCard","item","name","location","description","isFree","price","className","surface","border","children","onPress","accessibilityLabel","source","uri","image","iconBg","title","numberOfLines","free","size","color","iconColor","subtitle","time","map","index","undefined","id","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/event/event.native.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Image","Pressable","Text","View","getThemeClasses","resolveText","isFreePrice","formatEventDate","hasEventTime","useExpandableList","Collapsible","ClockIcon","Theme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FREE_LABEL","Event","data","theme","Dark","language","onSelect","c","items","Array","isArray","head","rest","expanded","hasMore","toggle","renderCard","item","name","location","description","isFree","price","dateLabel","startDateTime","endDateTime","time","className","surface","border","children","onPress","accessibilityLabel","source","uri","image","iconBg","title","numberOfLines","free","size","color","iconColor","subtitle","map","index","undefined","id","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/event/event.native.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,10 +2,10 @@
2
2
 
3
3
  export function isFreePrice(price) {
4
4
  if (price == null) return true;
5
- if (typeof price === 'number') return price === 0;
6
- const trimmed = price.trim();
7
- if (trimmed === '') return true;
5
+ if (typeof price === 'number') return !Number.isFinite(price) || price === 0;
6
+ const trimmed = price.trim().toLowerCase();
7
+ if (trimmed === '' || trimmed.includes('undefined') || trimmed.includes('null')) return true;
8
8
  const numeric = parseFloat(trimmed.replace(/[^0-9.,-]/g, '').replace(',', '.'));
9
- return Number.isFinite(numeric) && numeric === 0;
9
+ return !Number.isFinite(numeric) || numeric === 0;
10
10
  }
11
11
  //# sourceMappingURL=price.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isFreePrice","price","trimmed","trim","numeric","parseFloat","replace","Number","isFinite"],"sourceRoot":"../../../src","sources":["utils/price.utils.ts"],"mappings":";;AAAA,OAAO,SAASA,WAAWA,CAACC,KAA8B,EAAW;EACnE,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;EAC9B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK,KAAK,CAAC;EAEjD,MAAMC,OAAO,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;EAC5B,IAAID,OAAO,KAAK,EAAE,EAAE,OAAO,IAAI;EAE/B,MAAME,OAAO,GAAGC,UAAU,CAACH,OAAO,CAACI,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;EAC/E,OAAOC,MAAM,CAACC,QAAQ,CAACJ,OAAO,CAAC,IAAIA,OAAO,KAAK,CAAC;AAClD","ignoreList":[]}
1
+ {"version":3,"names":["isFreePrice","price","Number","isFinite","trimmed","trim","toLowerCase","includes","numeric","parseFloat","replace"],"sourceRoot":"../../../src","sources":["utils/price.utils.ts"],"mappings":";;AAAA,OAAO,SAASA,WAAWA,CAACC,KAA8B,EAAW;EACnE,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;EAC9B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,CAACC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,IAAIA,KAAK,KAAK,CAAC;EAE5E,MAAMG,OAAO,GAAGH,KAAK,CAACI,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAC1C,IAAIF,OAAO,KAAK,EAAE,IAAIA,OAAO,CAACG,QAAQ,CAAC,WAAW,CAAC,IAAIH,OAAO,CAACG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI;EAE5F,MAAMC,OAAO,GAAGC,UAAU,CAACL,OAAO,CAACM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;EAC/E,OAAO,CAACR,MAAM,CAACC,QAAQ,CAACK,OAAO,CAAC,IAAIA,OAAO,KAAK,CAAC;AACnD","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ function parseDate(value) {
4
+ if (value == null) return null;
5
+ const trimmed = value.trim();
6
+ if (trimmed === '') return null;
7
+ const date = new Date(trimmed);
8
+ return Number.isNaN(date.getTime()) ? null : date;
9
+ }
10
+ function formatDateTime(date) {
11
+ return date.toLocaleString('en-US', {
12
+ month: 'short',
13
+ day: 'numeric',
14
+ year: 'numeric',
15
+ hour: 'numeric',
16
+ minute: '2-digit'
17
+ });
18
+ }
19
+ function formatTime(date) {
20
+ return date.toLocaleTimeString('en-US', {
21
+ hour: 'numeric',
22
+ minute: '2-digit'
23
+ });
24
+ }
25
+ function isSameDay(a, b) {
26
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
27
+ }
28
+ export function hasEventTime(time) {
29
+ if (time == null) return false;
30
+ const trimmed = time.trim().toLowerCase();
31
+ if (trimmed === '' || trimmed.includes('undefined') || trimmed.includes('null')) return false;
32
+ return !/^0{1,2}:0{2}(:0{2})?$/.test(trimmed);
33
+ }
34
+ export function formatEventDate(startDateTime, endDateTime) {
35
+ const start = parseDate(startDateTime);
36
+ if (!start) return '';
37
+ const end = parseDate(endDateTime);
38
+ if (end && !isSameDay(start, end)) {
39
+ return `${formatDateTime(start)} – ${formatDateTime(end)}`;
40
+ }
41
+ if (end) {
42
+ return `${formatDateTime(start)} – ${formatTime(end)}`;
43
+ }
44
+ return formatDateTime(start);
45
+ }
46
+ //# sourceMappingURL=time.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseDate","value","trimmed","trim","date","Date","Number","isNaN","getTime","formatDateTime","toLocaleString","month","day","year","hour","minute","formatTime","toLocaleTimeString","isSameDay","a","b","getFullYear","getMonth","getDate","hasEventTime","time","toLowerCase","includes","test","formatEventDate","startDateTime","endDateTime","start","end"],"sourceRoot":"../../../src","sources":["utils/time.utils.ts"],"mappings":";;AAAA,SAASA,SAASA,CAACC,KAAqB,EAAe;EACrD,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;EAE9B,MAAMC,OAAO,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;EAC5B,IAAID,OAAO,KAAK,EAAE,EAAE,OAAO,IAAI;EAE/B,MAAME,IAAI,GAAG,IAAIC,IAAI,CAACH,OAAO,CAAC;EAC9B,OAAOI,MAAM,CAACC,KAAK,CAACH,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGJ,IAAI;AACnD;AAEA,SAASK,cAAcA,CAACL,IAAU,EAAU;EAC1C,OAAOA,IAAI,CAACM,cAAc,CAAC,OAAO,EAAE;IAClCC,KAAK,EAAE,OAAO;IACdC,GAAG,EAAE,SAAS;IACdC,IAAI,EAAE,SAAS;IACfC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC,CAAC;AACJ;AAEA,SAASC,UAAUA,CAACZ,IAAU,EAAU;EACtC,OAAOA,IAAI,CAACa,kBAAkB,CAAC,OAAO,EAAE;IACtCH,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC,CAAC;AACJ;AAEA,SAASG,SAASA,CAACC,CAAO,EAAEC,CAAO,EAAW;EAC5C,OACED,CAAC,CAACE,WAAW,CAAC,CAAC,KAAKD,CAAC,CAACC,WAAW,CAAC,CAAC,IACnCF,CAAC,CAACG,QAAQ,CAAC,CAAC,KAAKF,CAAC,CAACE,QAAQ,CAAC,CAAC,IAC7BH,CAAC,CAACI,OAAO,CAAC,CAAC,KAAKH,CAAC,CAACG,OAAO,CAAC,CAAC;AAE/B;AAEA,OAAO,SAASC,YAAYA,CAACC,IAAoB,EAAW;EAC1D,IAAIA,IAAI,IAAI,IAAI,EAAE,OAAO,KAAK;EAE9B,MAAMvB,OAAO,GAAGuB,IAAI,CAACtB,IAAI,CAAC,CAAC,CAACuB,WAAW,CAAC,CAAC;EACzC,IAAIxB,OAAO,KAAK,EAAE,IAAIA,OAAO,CAACyB,QAAQ,CAAC,WAAW,CAAC,IAAIzB,OAAO,CAACyB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK;EAE7F,OAAO,CAAC,uBAAuB,CAACC,IAAI,CAAC1B,OAAO,CAAC;AAC/C;AAEA,OAAO,SAAS2B,eAAeA,CAACC,aAA6B,EAAEC,WAA2B,EAAU;EAClG,MAAMC,KAAK,GAAGhC,SAAS,CAAC8B,aAAa,CAAC;EACtC,IAAI,CAACE,KAAK,EAAE,OAAO,EAAE;EAErB,MAAMC,GAAG,GAAGjC,SAAS,CAAC+B,WAAW,CAAC;EAClC,IAAIE,GAAG,IAAI,CAACf,SAAS,CAACc,KAAK,EAAEC,GAAG,CAAC,EAAE;IACjC,OAAO,GAAGxB,cAAc,CAACuB,KAAK,CAAC,MAAMvB,cAAc,CAACwB,GAAG,CAAC,EAAE;EAC5D;EACA,IAAIA,GAAG,EAAE;IACP,OAAO,GAAGxB,cAAc,CAACuB,KAAK,CAAC,MAAMhB,UAAU,CAACiB,GAAG,CAAC,EAAE;EACxD;EAEA,OAAOxB,cAAc,CAACuB,KAAK,CAAC;AAC9B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,KAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,CAAC,SAAS,CAAC,+BA+E/B"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,KAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,CAAC,SAAS,CAAC,+BAkF/B"}
@@ -4,7 +4,9 @@ export interface EventItem {
4
4
  image: string;
5
5
  name: LocalizedText;
6
6
  description?: LocalizedText;
7
- time: string;
7
+ time?: string;
8
+ startDateTime?: string;
9
+ endDateTime?: string;
8
10
  location: LocalizedText;
9
11
  price?: string | number | null;
10
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAChC"}
1
+ {"version":3,"file":"event.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"event.native.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.native.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,KAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,CAAC,SAAS,CAAC,+BAkF/B"}
1
+ {"version":3,"file":"event.native.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.native.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,KAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,CAAC,SAAS,CAAC,+BAqF/B"}
@@ -0,0 +1,3 @@
1
+ export declare function hasEventTime(time?: string | null): boolean;
2
+ export declare function formatEventDate(startDateTime?: string | null, endDateTime?: string | null): string;
3
+ //# sourceMappingURL=time.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/time.utils.ts"],"names":[],"mappings":"AAmCA,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAO1D;AAED,wBAAgB,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAalG"}
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAe,CAAC;AAI/C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,KAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,CAAC,SAAS,CAAC,+BA+E/B"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAe,CAAC;AAI/C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,KAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,CAAC,SAAS,CAAC,+BAkF/B"}
@@ -4,7 +4,9 @@ export interface EventItem {
4
4
  image: string;
5
5
  name: LocalizedText;
6
6
  description?: LocalizedText;
7
- time: string;
7
+ time?: string;
8
+ startDateTime?: string;
9
+ endDateTime?: string;
8
10
  location: LocalizedText;
9
11
  price?: string | number | null;
10
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAAwB,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAChC"}
1
+ {"version":3,"file":"event.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAAwB,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"event.native.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.native.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAe,CAAC;AAI/C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,KAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,CAAC,SAAS,CAAC,+BAkF/B"}
1
+ {"version":3,"file":"event.native.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chat/components/event/event.native.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAe,CAAC;AAI/C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,KAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,CAAC,SAAS,CAAC,+BAqF/B"}
@@ -0,0 +1,3 @@
1
+ export declare function hasEventTime(time?: string | null): boolean;
2
+ export declare function formatEventDate(startDateTime?: string | null, endDateTime?: string | null): string;
3
+ //# sourceMappingURL=time.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/time.utils.ts"],"names":[],"mappings":"AAmCA,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAO1D;AAED,wBAAgB,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAalG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inorain_development/hotel-smarters-chat-ui",
3
- "version": "1.1.1",
3
+ "version": "1.2.2",
4
4
  "description": "Cross-platform (React DOM + React Native) chat UI components that render dynamically from an AI-provided { type, data } payload.",
5
5
  "private": false,
6
6
  "license": "UNLICENSED",
@@ -5,7 +5,9 @@ export interface EventItem {
5
5
  image: string;
6
6
  name: LocalizedText;
7
7
  description?: LocalizedText;
8
- time: string;
8
+ time?: string;
9
+ startDateTime?: string;
10
+ endDateTime?: string;
9
11
  location: LocalizedText;
10
12
  price?: string | number | null;
11
13
  }
@@ -2,6 +2,7 @@ import { Image, Pressable, Text, View } from 'react-native';
2
2
  import { getThemeClasses } from '../../../../utils/theme.utils';
3
3
  import { resolveText } from '../../../../utils/i18n.utils';
4
4
  import { isFreePrice } from '../../../../utils/price.utils';
5
+ import { formatEventDate, hasEventTime } from '../../../../utils/time.utils';
5
6
  import { useExpandableList } from '../../../../utils/use-expandable-list';
6
7
  import { Collapsible } from '../common/collapsible.native';
7
8
  import { ClockIcon } from '../common/clock-icon.native';
@@ -26,6 +27,9 @@ export function Event({
26
27
  const location = resolveText(item.location, language);
27
28
  const description = item.description ? resolveText(item.description, language) : '';
28
29
  const isFree = isFreePrice(item.price);
30
+ const dateLabel =
31
+ formatEventDate(item.startDateTime, item.endDateTime) ||
32
+ (hasEventTime(item.time) ? item.time : '');
29
33
 
30
34
  return (
31
35
  <View className={`rounded-2xl border p-3 ${c.surface} ${c.border}`}>
@@ -49,9 +53,9 @@ export function Event({
49
53
  </View>
50
54
 
51
55
  <View className="flex-row items-center gap-1.5">
52
- <ClockIcon size={16} color={c.iconColor} />
56
+ {dateLabel ? <ClockIcon size={16} color={c.iconColor} /> : null}
53
57
  <Text className={`flex-1 text-sm down-sm:text-xs ${c.subtitle}`} numberOfLines={1}>
54
- {item.time} · {location}
58
+ {dateLabel ? `${dateLabel} · ${location}` : location}
55
59
  </Text>
56
60
  </View>
57
61
 
@@ -1,6 +1,7 @@
1
1
  import { getThemeClasses } from '../../../../utils/theme.utils';
2
2
  import { resolveText } from '../../../../utils/i18n.utils';
3
3
  import { isFreePrice } from '../../../../utils/price.utils';
4
+ import { formatEventDate, hasEventTime } from '../../../../utils/time.utils';
4
5
  import { useExpandableList } from '../../../../utils/use-expandable-list';
5
6
  import { Collapsible } from '../common/collapsible';
6
7
  import { ClockIcon } from '../common/clock-icon';
@@ -25,6 +26,9 @@ export function Event({
25
26
  const location = resolveText(item.location, language);
26
27
  const description = item.description ? resolveText(item.description, language) : '';
27
28
  const isFree = isFreePrice(item.price);
29
+ const dateLabel =
30
+ formatEventDate(item.startDateTime, item.endDateTime) ||
31
+ (hasEventTime(item.time) ? item.time : '');
28
32
 
29
33
  return (
30
34
  <div className={`rounded-2xl border p-3 ${c.surface} ${c.border}`}>
@@ -48,9 +52,9 @@ export function Event({
48
52
  </div>
49
53
 
50
54
  <div className="flex items-center gap-1.5">
51
- <ClockIcon size={16} color={c.iconColor} />
55
+ {dateLabel ? <ClockIcon size={16} color={c.iconColor} /> : null}
52
56
  <span className={`truncate text-sm down-sm:text-xs ${c.subtitle}`}>
53
- {item.time} · {location}
57
+ {dateLabel ? `${dateLabel} · ${location}` : location}
54
58
  </span>
55
59
  </div>
56
60
 
@@ -1,10 +1,10 @@
1
1
  export function isFreePrice(price?: string | number | null): boolean {
2
2
  if (price == null) return true;
3
- if (typeof price === 'number') return price === 0;
3
+ if (typeof price === 'number') return !Number.isFinite(price) || price === 0;
4
4
 
5
- const trimmed = price.trim();
6
- if (trimmed === '') return true;
5
+ const trimmed = price.trim().toLowerCase();
6
+ if (trimmed === '' || trimmed.includes('undefined') || trimmed.includes('null')) return true;
7
7
 
8
8
  const numeric = parseFloat(trimmed.replace(/[^0-9.,-]/g, '').replace(',', '.'));
9
- return Number.isFinite(numeric) && numeric === 0;
9
+ return !Number.isFinite(numeric) || numeric === 0;
10
10
  }
@@ -0,0 +1,58 @@
1
+ function parseDate(value?: string | null): Date | null {
2
+ if (value == null) return null;
3
+
4
+ const trimmed = value.trim();
5
+ if (trimmed === '') return null;
6
+
7
+ const date = new Date(trimmed);
8
+ return Number.isNaN(date.getTime()) ? null : date;
9
+ }
10
+
11
+ function formatDateTime(date: Date): string {
12
+ return date.toLocaleString('en-US', {
13
+ month: 'short',
14
+ day: 'numeric',
15
+ year: 'numeric',
16
+ hour: 'numeric',
17
+ minute: '2-digit',
18
+ });
19
+ }
20
+
21
+ function formatTime(date: Date): string {
22
+ return date.toLocaleTimeString('en-US', {
23
+ hour: 'numeric',
24
+ minute: '2-digit',
25
+ });
26
+ }
27
+
28
+ function isSameDay(a: Date, b: Date): boolean {
29
+ return (
30
+ a.getFullYear() === b.getFullYear() &&
31
+ a.getMonth() === b.getMonth() &&
32
+ a.getDate() === b.getDate()
33
+ );
34
+ }
35
+
36
+ export function hasEventTime(time?: string | null): boolean {
37
+ if (time == null) return false;
38
+
39
+ const trimmed = time.trim().toLowerCase();
40
+ if (trimmed === '' || trimmed.includes('undefined') || trimmed.includes('null')) return false;
41
+
42
+ return !/^0{1,2}:0{2}(:0{2})?$/.test(trimmed);
43
+ }
44
+
45
+ export function formatEventDate(startDateTime?: string | null, endDateTime?: string | null): string {
46
+ const start = parseDate(startDateTime);
47
+ if (!start) return '';
48
+
49
+ const end = parseDate(endDateTime);
50
+ if (end && !isSameDay(start, end)) {
51
+ return `${formatDateTime(start)} – ${formatDateTime(end)}`;
52
+ }
53
+ if (end) {
54
+ return `${formatDateTime(start)} – ${formatTime(end)}`;
55
+ }
56
+
57
+ return formatDateTime(start);
58
+ }