esoftplay-event 0.0.1-c → 0.0.1-e

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 (44) hide show
  1. package/config.json +1 -1
  2. package/event/artist.tsx +3 -6
  3. package/event/detail.tsx +0 -44
  4. package/event/order.tsx +2 -1
  5. package/event/order_detail.tsx +2 -4
  6. package/event/order_detail_upgrade_payment.tsx +13 -7
  7. package/event/order_detail_waiting.tsx +21 -9
  8. package/event/order_share_to.tsx +2 -2
  9. package/event/scan_item.tsx +2 -2
  10. package/event/seat_map_new.tsx +313 -0
  11. package/event/test.tsx +240 -155
  12. package/event/ticket_list.tsx +8 -5
  13. package/event/ticket_list2.tsx +1 -1
  14. package/event/tms_check_ticket_result.tsx +5 -5
  15. package/event/tms_in_failed.tsx +1 -1
  16. package/id.json +5 -4
  17. package/package.json +1 -1
  18. package/event/entrance.tsx +0 -215
  19. package/event/entrance_again.tsx +0 -199
  20. package/event/entrance_failed.tsx +0 -190
  21. package/event/entrance_idcard.tsx +0 -199
  22. package/event/entrance_list.tsx +0 -264
  23. package/event/entrance_list_item.tsx +0 -88
  24. package/event/entrance_log.tsx +0 -130
  25. package/event/entrance_success.tsx +0 -153
  26. package/event/entrance_warning.tsx +0 -91
  27. package/event/exit.tsx +0 -91
  28. package/event/exit_failed.tsx +0 -135
  29. package/event/exit_list.tsx +0 -118
  30. package/event/exit_log.tsx +0 -130
  31. package/event/exit_success.tsx +0 -143
  32. package/event/exit_temporary.tsx +0 -226
  33. package/event/hall_in.tsx +0 -148
  34. package/event/hall_in_failed.tsx +0 -270
  35. package/event/hall_in_list.tsx +0 -222
  36. package/event/hall_in_log.tsx +0 -134
  37. package/event/hall_in_success.tsx +0 -132
  38. package/event/hall_out.tsx +0 -143
  39. package/event/hall_out_failed.tsx +0 -133
  40. package/event/hall_out_list.tsx +0 -215
  41. package/event/hall_out_log.tsx +0 -133
  42. package/event/hall_out_success.tsx +0 -130
  43. package/event/log.tsx +0 -433
  44. package/event/seat_map_test.tsx +0 -401
package/event/test.tsx CHANGED
@@ -1,155 +1,240 @@
1
- // // withHooks
2
- // import { Canvas, Group, RoundedRect, Text, useFont } from '@shopify/react-native-skia';
3
- // import { LibCurl } from 'esoftplay/cache/lib/curl/import';
4
- // import { LibIcon } from 'esoftplay/cache/lib/icon/import';
5
- // import useSafeState from 'esoftplay/state';
6
- // import React, { useCallback, useEffect, useState } from 'react';
7
- // import { Dimensions, Pressable, ScrollView, View } from 'react-native';
8
- // import { TapGestureHandler, TapGestureHandlerStateChangeEvent } from 'react-native-gesture-handler';
9
-
10
-
11
- // export interface EventSeat_map_matrixArgs {
12
-
13
- // }
14
- // export interface EventSeat_map_matrixProps {
15
-
16
- // }
17
- // export default function m(props: any): any {
18
- // const deviceWidth = Dimensions.get('window').width;
19
- // const [selectedIdx, setSelectedIdx] = useState<number | null>(null);
20
- // const [scale, setScale] = useState(1);
21
- // const [boundingBox, setBoundingBox] = useSafeState({ "x1": 1, "x2": 2, "y1": 1, "y2": 2 })
22
- // const [data, setData] = useSafeState<[number, number, string, number][]>([])
23
- // const initialBoxSize = 30;
24
- // const contentWidth = (boundingBox.x2 - (boundingBox.x1 - 1.1)) * initialBoxSize
25
-
26
- // // Scale boxSize so that contentWidth fits deviceWidth
27
- // const scaleToFit = deviceWidth / contentWidth;
28
- // const boxSize = initialBoxSize * scaleToFit;
29
-
30
- // // Recalculate xs, ys, width, height with scaled boxSize
31
- // const xsScaled = data.map(([x]) => isNaN(x) ? 0 : (boxSize) + (x * boxSize));
32
- // const ysScaled = data.map(([_, y]) => isNaN(y) ? 0 : (boxSize) + (y * boxSize));
33
-
34
- // const width = Math.max(deviceWidth, xsScaled.length && xsScaled.every(v => !isNaN(v)) ? Math.max(...xsScaled) + boxSize : boxSize * 2);
35
- // const height = ysScaled.length && ysScaled.every(v => !isNaN(v)) ? Math.max(...ysScaled) + boxSize : boxSize * 2;
36
-
37
- // const fontSize: any = {
38
- // 1: useFont(require('../../assets/fonts/MonoSpace.ttf'), boxSize * 0.3),
39
- // 2: useFont(require('../../assets/fonts/MonoSpace.ttf'), boxSize * 0.3),
40
- // 3: useFont(require('../../assets/fonts/MonoSpace.ttf'), boxSize * 0.25),
41
- // 4: useFont(require('../../assets/fonts/MonoSpace.ttf'), boxSize * 0.2),
42
- // 5: useFont(require('../../assets/fonts/MonoSpace.ttf'), boxSize * 0.2),
43
- // 6: useFont(require('../../assets/fonts/MonoSpace.ttf'), boxSize * 0.15),
44
- // }
45
- // const handleTap = useCallback((event: TapGestureHandlerStateChangeEvent) => {
46
- // if (event.nativeEvent.state !== 5) return;
47
- // // Adjust tap coordinates for scale
48
- // const x = event.nativeEvent.x / scale;
49
- // const y = event.nativeEvent.y / scale;
50
- // for (let i = 0; i < data.length; i++) {
51
- // const [sx, sy, seatName] = data[i];
52
- // const xSize = (boxSize / 2) + (sx * boxSize);
53
- // const ySize = (boxSize / 2) + (sy * boxSize);
54
- // if (x >= xSize && x <= xSize + boxSize && y >= ySize && y <= ySize + boxSize) {
55
- // setSelectedIdx(i);
56
- // return;
57
- // }
58
- // }
59
- // setSelectedIdx(null);
60
- // }, [data, boxSize, scale]);
61
-
62
-
63
- // useEffect(() => {
64
- // new LibCurl("v3/event_seat", {
65
- // event_id: 398,
66
- // price_id: 1922,
67
- // ondate: "0000-00-00"
68
- // }, (res, msg) => {
69
- // setBoundingBox(res.metadata.bounding_box)
70
- // console.log(JSON.stringify(res, undefined, 2))
71
- // setData(res.layout.split(';').map((item) => item.split(',')).map(([x, y, seatName, status]) => [Number(x), Number(y), seatName, Number(status)]))
72
- // })
73
- // }, [])
74
-
75
- // return (
76
- // <View key={scale} style={{ flex: 1 }} >
77
- // <ScrollView horizontal style={{ flex: 1 }}>
78
- // <ScrollView style={{ flex: 1 }}>
79
- // <TapGestureHandler onHandlerStateChange={handleTap}>
80
- // <View>
81
- // <Canvas
82
- // style={{
83
- // width: width * scale,
84
- // height: height * scale,
85
- // padding: 10,
86
- // backgroundColor: "#f1f2f3",
87
- // }}>
88
- // {
89
- // data.map(([x, y, name, status], i) => {
90
- // const color = selectedIdx == i ? "lime" : getColorByStatus(status)
91
- // const xSize = (boxSize / 2) + (x * boxSize)
92
- // const ySize = (boxSize / 2) + (y * boxSize)
93
- // return (
94
- // <Group key={i}>
95
- // <RoundedRect
96
- // x={xSize - 1}
97
- // r={(boxSize + 2) * 0.34}
98
- // y={ySize - 1}
99
- // width={boxSize + 2}
100
- // transform={[{ scale }]}
101
- // height={boxSize + 2}
102
- // color={"#999"} />
103
- // <RoundedRect
104
- // x={xSize}
105
- // r={boxSize * 0.32}
106
- // y={ySize}
107
- // width={boxSize}
108
- // transform={[{ scale }]}
109
- // height={boxSize}
110
- // color={color} />
111
- // {name && fontSize[name.length] && (
112
- // <Text
113
- // x={(xSize) + boxSize * (5 - name.length) * 0.1}
114
- // y={(ySize) + boxSize * 0.60}
115
- // color="#020202"
116
- // text={name}
117
- // transform={[{ scale }]}
118
- // font={fontSize[name.length]} />
119
- // )}
120
- // </Group>
121
- // )
122
- // })
123
- // }
124
- // </Canvas>
125
- // </View>
126
- // </TapGestureHandler>
127
- // </ScrollView>
128
- // </ScrollView>
129
- // <View style={{ flexDirection: "row" }} >
130
- // <Pressable onPress={() => setScale((x) => x - 0.3)} >
131
- // <LibIcon.AntDesign name='minuscircleo' />
132
- // </Pressable>
133
- // <Pressable onPress={() => setScale((x) => x + 0.3)} >
134
- // <LibIcon.AntDesign name='pluscircleo' />
135
- // </Pressable>
136
- // </View>
137
- // </View>
138
- // )
139
- // }
140
-
141
-
142
- // function getColorByStatus(statuses: number) {
143
- // const colors: any = {
144
- // 8: 'purple',
145
- // 0: "white",
146
- // 1: "#9FA1A4",
147
- // 2: "#6B71E6",
148
- // 3: "#2EBBE8",
149
- // 4: "#FFA601",
150
- // 5: "#fff",
151
- // 6: "#FF4866",
152
- // 7: "#6C432C"
153
- // }
154
- // return colors[statuses]
155
- // }
1
+ // withHooks
2
+ import { Canvas, Group, RoundedRect, Text, useFont } from '@shopify/react-native-skia';
3
+ import { EventButton } from 'esoftplay/cache/event/button/import';
4
+ import { EventHeader } from 'esoftplay/cache/event/header/import';
5
+ import { LibCurl } from 'esoftplay/cache/lib/curl/import';
6
+ import { LibIcon } from 'esoftplay/cache/lib/icon/import';
7
+ import { LibStyle } from 'esoftplay/cache/lib/style/import';
8
+ import { LibTextstyle } from 'esoftplay/cache/lib/textstyle/import';
9
+ import { UseMap } from 'esoftplay/cache/use/map/import';
10
+ import esp from 'esoftplay/esp';
11
+ import useLazyState from 'esoftplay/lazy';
12
+ import useSafeState from 'esoftplay/state';
13
+ import React, { useCallback, useEffect, useState } from 'react';
14
+ import { Dimensions, Pressable, ScrollView, View } from 'react-native';
15
+ import { TapGestureHandler, TapGestureHandlerStateChangeEvent } from 'react-native-gesture-handler';
16
+
17
+
18
+ export interface EventSeat_map_matrixArgs {
19
+
20
+ }
21
+ export interface EventSeat_map_matrixProps {
22
+
23
+ }
24
+ export default function m(props: any): any {
25
+ const deviceWidth = Dimensions.get('window').width;
26
+ const [selectedIdx, setSelectedIdx] = useState<number | null>(null);
27
+ const [scale, setScale] = useState(1);
28
+ const [boundingBox, setBoundingBox] = useSafeState({ "x1": 1, "x2": 2, "y1": 1, "y2": 2 })
29
+ const [data, setData, getData] = useSafeState<[number, number, string, number][]>([])
30
+ const initialBoxSize = 30;
31
+ const contentWidth = (boundingBox.x2 - (boundingBox.x1 - 1.1)) * initialBoxSize
32
+ const [stage, setStage] = useLazyState('')
33
+
34
+ // Scale boxSize so that contentWidth fits deviceWidth
35
+ const scaleToFit = deviceWidth / contentWidth;
36
+ const boxSize = initialBoxSize * scaleToFit;
37
+
38
+ // Recalculate xs, ys, width, height with scaled boxSize
39
+ const xsScaled = data.map(([x]) => isNaN(x) ? 0 : (boxSize) + (x * boxSize));
40
+ const ysScaled = data.map(([_, y]) => isNaN(y) ? 0 : (boxSize) + (y * boxSize));
41
+
42
+ const width = Math.max(deviceWidth, xsScaled.length && xsScaled.every(v => !isNaN(v)) ? Math.max(...xsScaled) + boxSize : boxSize * 2);
43
+ const height = ysScaled.length && ysScaled.every(v => !isNaN(v)) ? Math.max(...ysScaled) + boxSize : boxSize * 2;
44
+
45
+ const size: any = {
46
+ 1: useFont(esp.assets('fonts/MonoSpace.ttf'), boxSize * 0.3),
47
+ 2: useFont(esp.assets('fonts/MonoSpace.ttf'), boxSize * 0.3),
48
+ 3: useFont(esp.assets('fonts/MonoSpace.ttf'), boxSize * 0.25),
49
+ 4: useFont(esp.assets('fonts/MonoSpace.ttf'), boxSize * 0.2),
50
+ 5: useFont(esp.assets('fonts/MonoSpace.ttf'), boxSize * 0.2),
51
+ 6: useFont(esp.assets('fonts/MonoSpace.ttf'), boxSize * 0.15),
52
+ }
53
+ const handleTap = useCallback((event: TapGestureHandlerStateChangeEvent) => {
54
+ if (event.nativeEvent.state !== 5) return;
55
+ // Adjust tap coordinates for scale
56
+ const x = event.nativeEvent.x / scale;
57
+ const y = event.nativeEvent.y / scale;
58
+ for (let i = 0; i < data.length; i++) {
59
+ const [sx, sy, seatName, status] = data[i];
60
+ const xSize = (boxSize / 2) + (sx * boxSize);
61
+ const ySize = (boxSize / 2) + (sy * boxSize);
62
+
63
+ if (x >= xSize && x <= xSize + boxSize && y >= ySize && y <= ySize + boxSize) {
64
+ if (status == 0) {
65
+ setSelectedIdx(i);
66
+ } /* else {
67
+ setSelectedIdx(null);
68
+ } */
69
+ return;
70
+ }
71
+
72
+ }
73
+ }, [data, boxSize, scale]);
74
+
75
+ useEffect(() => {
76
+ new LibCurl("v3/event_seat", {
77
+ event_id: 398,
78
+ price_id: 1922,
79
+ ondate: "0000-00-00"
80
+ }, (res, msg) => {
81
+ setBoundingBox(res.metadata.bounding_box)
82
+ setData(res.layout.split(';').map((item: any) => item.split(',')).map(([x, y, seatName, status]: any) => [Number(x), Number(y), seatName, Number(status)]))
83
+ })
84
+
85
+ loadDataSeatmapBooked()
86
+
87
+ }, [])
88
+
89
+ function updateIndexByRes(data: any, res: any) {
90
+ const resArr = res.split(",").map((item: any) => item.trim()); // biar aman dari spasi
91
+ return data.map((row: any) => {
92
+ if (resArr.includes(row[2])) {
93
+ return [row[0], row[1], row[2], 3];
94
+ }
95
+ return row;
96
+ });
97
+ }
98
+
99
+ function loadDataSeatmapBooked() {
100
+ new LibCurl("v3/event_seat_booked", {
101
+ event_id: 398,
102
+ price_id: 1922,
103
+ ondate: "0000-00-00"
104
+ }, (res, msg) => {
105
+ let updated = updateIndexByRes(getData(), res)
106
+ setData(updated)
107
+ // esp.log({ updated, res });
108
+ }, (err) => {
109
+ esp.log({ err });
110
+ })
111
+
112
+ }
113
+
114
+ return (
115
+ <View key={scale} style={{ flex: 1, backgroundColor: LibStyle.colorBgGrey }} >
116
+ <EventHeader title={esp.lang("event/seat_map", "header_title")} />
117
+ <View style={{ flex: 1 }}>
118
+ <View style={{ marginBottom: 5, }}>
119
+ <ScrollView style={{ padding: 10, paddingLeft: 0, }} horizontal>
120
+ <UseMap
121
+ data={getLegends()}
122
+ renderItem={(item) => (
123
+ <View style={{ flexDirection: 'row', alignItems: 'center', marginLeft: 15, marginRight: 5 }} >
124
+ <View style={{ height: 20, width: 20, borderRadius: 2, borderWidth: 0.5, backgroundColor: item[0], marginRight: 8 }} />
125
+ <LibTextstyle textStyle='caption1' text={item[1]} />
126
+ </View>
127
+ )}
128
+ />
129
+ </ScrollView>
130
+ </View>
131
+ <View style={{ height: 40, marginLeft: 20, marginRight: 20, backgroundColor: LibStyle.colorPrimary, marginBottom: 10, borderRadius: 2, justifyContent: 'center', alignItems: 'center' }} >
132
+ <LibTextstyle textStyle='body' style={{ color: 'white', fontWeight: 'bold' }} >{stage || esp.lang("event/seat_map", "front")}</LibTextstyle>
133
+ </View>
134
+
135
+ <ScrollView horizontal >
136
+ <ScrollView >
137
+ <TapGestureHandler onHandlerStateChange={handleTap}>
138
+ <View>
139
+ <Canvas
140
+ style={{
141
+ width: width * scale,
142
+ height: height * scale,
143
+ padding: 10,
144
+ backgroundColor: LibStyle.colorBgGrey,
145
+
146
+ }}>
147
+ {
148
+ data.map(([x, y, name, status], i) => {
149
+ const color = selectedIdx == i ? "#8EF67B" : getColorByStatus(status)
150
+ const xSize = (boxSize / 2) + (x * boxSize)
151
+ const ySize = (boxSize / 2) + (y * boxSize)
152
+ return (
153
+ <Group key={i}>
154
+ <RoundedRect
155
+ x={xSize - 1}
156
+ r={(boxSize + 2) * 0.1}
157
+ y={ySize - 1}
158
+ width={boxSize + 2}
159
+ transform={[{ scale }]}
160
+ height={boxSize + 2}
161
+ color={"#999"} />
162
+ <RoundedRect
163
+ x={xSize}
164
+ r={boxSize * 0.1}
165
+ y={ySize}
166
+ width={boxSize}
167
+ transform={[{ scale }]}
168
+ height={boxSize}
169
+ color={color} />
170
+ {name && size[name.length] && (
171
+ <Text
172
+ x={(xSize) + boxSize * (5 - name.length) * 0.1}
173
+ y={(ySize) + boxSize * 0.60}
174
+ color={"#020202"}
175
+ text={name}
176
+ transform={[{ scale }]}
177
+ font={size[name.length]} />
178
+ )}
179
+ </Group>
180
+ )
181
+ })
182
+ }
183
+ </Canvas>
184
+ </View>
185
+ </TapGestureHandler>
186
+ </ScrollView>
187
+ </ScrollView>
188
+ <View style={{ flexDirection: 'row', marginHorizontal: 12, height: 40, borderColor: '#060606', borderWidth: 1, borderRadius: 5, alignItems: 'center' }} >
189
+ <Pressable onPress={() => setScale((x) => x - 0.3)} style={{ height: 40, width: 40, alignItems: 'center', justifyContent: 'center' }} >
190
+ <LibIcon.SimpleLineIcons name='magnifier-remove' />
191
+ </Pressable>
192
+ <Pressable onPress={() => setScale((x) => x + 0.3)} style={{ height: 40, width: 40, alignItems: 'center', justifyContent: 'center' }} >
193
+ <LibIcon.SimpleLineIcons name='magnifier-add' />
194
+ </Pressable>
195
+ <View style={{ height: 40, width: 1, backgroundColor: '#060606', marginRight: 12 }} />
196
+ {/* <Text style={{}} >{esp.lang("event/seat_map", "selected", String(data.filter((x) => x == -1).length), qty)}</Text> */}
197
+ <LibTextstyle textStyle='callout'>{"Kursi terpilih"}</LibTextstyle>
198
+ </View>
199
+ <EventButton
200
+ backgroundColor={LibStyle.colorPrimary}
201
+ testID={"save_btn"}
202
+ style={{ margin: 7 }}
203
+ label={esp.lang("event/seat_map", "save")}
204
+ onPress={() => { }}
205
+ />
206
+ </View>
207
+ </View>
208
+ )
209
+ }
210
+
211
+ function getLegends() {
212
+ const colors: any = [
213
+ ["#fff", esp.lang("event/seat_map", "available"), 0],
214
+ ["#8EF67B", esp.lang("event/seat_map", "chosen"), "-1"],
215
+ ["#2EBBE8", esp.lang("event/seat_map", "reserved"), 3],
216
+ ["#6C432C", esp.lang("event/seat_map", "chosen_by"), 7],
217
+ ["#f1f2f3", esp.lang("event/seat_map", "way"), 5],
218
+ ["#9FA1A4", esp.lang("event/seat_map", "not_sold"), 1],
219
+ ["#6B71E6", esp.lang("event/seat_map", "seat_hold"), 2],
220
+ ["#FF4866", esp.lang("event/seat_map", "wall"), 6],
221
+ ["#FFA601", esp.lang("event/seat_map", "other_type"), 4],
222
+ ["purple", esp.lang("event/seat_map", "stage"), 8]
223
+ ]
224
+ return colors
225
+ }
226
+
227
+ function getColorByStatus(statuses: number) {
228
+ const colors: any = {
229
+ 8: 'purple',
230
+ 0: '#fff',
231
+ 1: "#9FA1A4",
232
+ 2: "#6B71E6",
233
+ 3: "#2EBBE8",
234
+ 4: "#FFA601",
235
+ 5: "#fff",
236
+ 6: "#FF4866",
237
+ 7: "#6C432C"
238
+ }
239
+ return colors[statuses]
240
+ }
@@ -303,14 +303,17 @@ export default function m(props: EventTicket_listProps): any {
303
303
  if (selectedTicket?.config && selectedTicket?.config?.seat_autopick == 1) {
304
304
  checkAddition(dataPost)
305
305
  } else {
306
- LibNavigation.navigateForResult('event/seat_map', {
306
+ LibNavigation.navigateForResult(esp.isDebug("") ? 'event/seat_map_new' : 'event/seat_map', {
307
307
  url: 'event_seat',
308
308
  dataTicket: dataPost,
309
309
  }).then((value) => {
310
- dataPost.row_id = value.row_id
311
- dataPost.column_id = value.column_id
312
- dataPost.seat_name = value.seat_name
313
-
310
+ if (esp.isDebug("")) {
311
+ dataPost.seat_label = value.seat_label
312
+ } else {
313
+ dataPost.row_id = value.row_id
314
+ dataPost.column_id = value.column_id
315
+ dataPost.seat_name = value.seat_name
316
+ }
314
317
  checkAddition(dataPost)
315
318
  })
316
319
  }
@@ -160,7 +160,7 @@ export default function m(props: EventTicket_list2Props): any {
160
160
  const [ticketSeat, resetTicketSeat] = taskSeat((item: any) => new Promise((next) => {
161
161
  if (item.use_seat == 1) {
162
162
  if (item.adjacent_seats == 0) {
163
- LibNavigation.navigateForResult('event/seat_map', {
163
+ LibNavigation.navigateForResult(esp.isDebug("") ? 'event/seat_map_new' : 'event/seat_map', {
164
164
  url: 'event_seat',
165
165
  dataTicket: {
166
166
  ...dataEvent,
@@ -78,7 +78,7 @@ export default function m(props: EventTms_check_ticket_resultProps): any {
78
78
  item.tms_name != "" &&
79
79
  <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item.tms_name}</Text>
80
80
  }
81
- <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item?.scanned_in != "0000-00-00 00:00:00" ? LibUtils.moment(item.scanned_in).serverFormat("DD MMM HH:mm:ss ") : esp.lang("event/tms_check_ticket_result", "not_scan_in")}</Text>
81
+ <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item?.scanned_in != "0000-00-00 00:00:00" ? (LibUtils.moment(item.scanned_in).serverFormat("DD MMM HH:mm:ss ", item.timezone) + item.hasOwnProperty("timezone_locale") ? item?.timezone_locale : "") : esp.lang("event/tms_check_ticket_result", "not_scan_in")}</Text>
82
82
 
83
83
  </View>
84
84
  )
@@ -91,7 +91,7 @@ export default function m(props: EventTms_check_ticket_resultProps): any {
91
91
  item.tms_name_out != null && item.tms_name_out != "" &&
92
92
  <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item.tms_name_out}</Text>
93
93
  }
94
- <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item?.scanned_out != "0000-00-00 00:00:00" ? LibUtils.moment(item.scanned_out).serverFormat("DD MMM HH:mm:ss ") : esp.lang("event/tms_check_ticket_result", "not_scan_out")}</Text>
94
+ <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item?.scanned_out != "0000-00-00 00:00:00" ? (LibUtils.moment(item.scanned_out).serverFormat("DD MMM HH:mm:ss ", item.timezone) + item.hasOwnProperty("timezone_locale") ? item?.timezone_locale : "") : esp.lang("event/tms_check_ticket_result", "not_scan_out")}</Text>
95
95
  </View>
96
96
  )
97
97
  }
@@ -99,7 +99,7 @@ export default function m(props: EventTms_check_ticket_resultProps): any {
99
99
  function renderTempOut(item: any, i: number) {
100
100
  return (
101
101
  <View key={i} style={{ borderRadius: 5, margin: 2, padding: 5, backgroundColor: i % 2 ? '#fff' : LibStyle.colorGrey, borderBottomWidth: 1, borderBottomColor: LibStyle.colorBgGrey }}>
102
- <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item.hasOwnProperty("scanned_out_temporary") && item?.scanned_out_temporary != "0000-00-00 00:00:00" ? LibUtils.moment(item.scanned_out_temporary).serverFormat("DD MMM HH:mm:ss ") : "Belum pernah scan keluar sementara"}</Text>
102
+ <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item.hasOwnProperty("scanned_out_temporary") && item?.scanned_out_temporary != "0000-00-00 00:00:00" ? (LibUtils.moment(item.scanned_out_temporary).serverFormat("DD MMM HH:mm:ss ", item.timezone) + item.hasOwnProperty("timezone_locale") ? item?.timezone_locale : "") : esp.lang("event/tms_check_ticket_result", "notyet_scan_temp_out")}</Text>
103
103
  </View>
104
104
  )
105
105
  }
@@ -119,7 +119,7 @@ export default function m(props: EventTms_check_ticket_resultProps): any {
119
119
  item.tms_name != "" &&
120
120
  <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item.tms_name}</Text>
121
121
  }
122
- <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item?.scanned_in != "0000-00-00 00:00:00" ? LibUtils.moment(item.scanned_in).serverFormat("DD MMM HH:mm:ss ") : esp.lang("event/tms_check_ticket_result", "not_scan_in")}</Text>
122
+ <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item?.scanned_in != "0000-00-00 00:00:00" ? (LibUtils.moment(item.scanned_in).serverFormat("DD MMM HH:mm:ss ", item.timezone) + item.hasOwnProperty("timezone_locale") ? item?.timezone_locale : "") : esp.lang("event/tms_check_ticket_result", "not_scan_in")}</Text>
123
123
 
124
124
  </View>
125
125
  )
@@ -132,7 +132,7 @@ export default function m(props: EventTms_check_ticket_resultProps): any {
132
132
  item.tms_name_out != "" &&
133
133
  <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item.tms_name_out}</Text>
134
134
  }
135
- <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item?.scanned_out != "0000-00-00 00:00:00" ? LibUtils.moment(item.scanned_out).serverFormat("DD MMM HH:mm:ss ") : esp.lang("event/tms_check_ticket_result", "not_scan_out")}</Text>
135
+ <Text allowFontScaling={false} style={{ paddingHorizontal: 5, fontSize: 14 }}>{item?.scanned_out != "0000-00-00 00:00:00" ? (LibUtils.moment(item.scanned_out).serverFormat("DD MMM HH:mm:ss ", item.timezone) + item.hasOwnProperty("timezone_locale") ? item?.timezone_locale : "") : esp.lang("event/tms_check_ticket_result", "not_scan_out")}</Text>
136
136
 
137
137
  </View>
138
138
  )
@@ -145,7 +145,7 @@ export default function m(props: EventTms_in_failedProps): any {
145
145
  <View style={{ flex: 1.2, justifyContent: 'center', paddingVertical: 5 }}>
146
146
  {
147
147
  item.scanned != "0000-00-00 00:00:00" &&
148
- <Text allowFontScaling={false} style={{ textAlign: 'center', fontSize: 12 }}>{LibUtils.moment(item.scanned).localeFormat("DD MMM H:mm:ss ")}</Text>
148
+ <Text allowFontScaling={false} style={{ textAlign: 'center', fontSize: 12 }}>{LibUtils.moment(item.scanned).localeFormat("DD MMM H:mm:ss ") + item.timezone_locale != "" ? item.timezone_locale : ""}</Text>
149
149
  }
150
150
  </View>
151
151
  <View style={{ flex: 2, justifyContent: 'center', borderLeftWidth: 1, borderColor: LibStyle.colorBgGrey, paddingVertical: 5 }}>
package/id.json CHANGED
@@ -957,7 +957,7 @@
957
957
  "leave_review": "Leave a Review",
958
958
  "load_err": "Oops",
959
959
  "location_empty": "Lokasi belum dipilih",
960
- "not_allowed_ss": "Harap hindari membuat screenshot atau foto tiket. Tunjukkan tiket asli di aplikasi BBO saat masuk ke area event. Terima kasih!",
960
+ "not_allowed_ss": "Harap hindari membuat screenshot atau foto tiket. Tunjukkan tiket asli di aplikasi %s saat masuk ke area event. Terima kasih!",
961
961
  "not_now": "Nanti Saja",
962
962
  "order_detail": "Order Detail",
963
963
  "payment_instruction": "Petunjuk Pembayaran",
@@ -976,7 +976,7 @@
976
976
  "select_domicile": "Pilih Domisili",
977
977
  "select_gender": "Pilih Jenis Kelamin",
978
978
  "send_to_email": "Kirim tiket ke email",
979
- "share_msg": "Pastikan temanmu sudah mendownload dan mendaftar di BBO",
979
+ "share_msg": "Pastikan temanmu sudah mendownload dan mendaftar di %s",
980
980
  "share_no": "Batal",
981
981
  "share_ok": "Lanjutkan",
982
982
  "share_ticket": "Bagikan Tiket ke Temanmu",
@@ -1135,7 +1135,7 @@
1135
1135
  "btn_yes_alert_cant_share_ticket_to_myself": "Ok",
1136
1136
  "btn_yes_alert_share_ticket": "Ya",
1137
1137
  "click_here": "Klik disini",
1138
- "in_member_bbo_page": "Yang terdapat pada halaman member BBO",
1138
+ "in_member_bbo_page": "Yang terdapat pada halaman member %s",
1139
1139
  "load_error": "Oops!",
1140
1140
  "msg_alert_cant_share_ticket_to_myself": "Anda tidak bisa membagikan tiket ke akun Anda sendiri",
1141
1141
  "msg_alert_share_ticket": "Bagikan Tiket ini ?",
@@ -1149,7 +1149,7 @@
1149
1149
  "title_alert_fault": "Kesalahan",
1150
1150
  "title_alert_share_ticket": "Konfirmasi",
1151
1151
  "title_curl_success": "Informasi",
1152
- "title_share_ticket_to": "Bagikan Tiket ke sesama member BBO"
1152
+ "title_share_ticket_to": "Bagikan Tiket ke sesama member %s"
1153
1153
  },
1154
1154
  "event/order_share_to_detail": {
1155
1155
  "back": "Kembali",
@@ -1428,6 +1428,7 @@
1428
1428
  "message": "Apakan anda yakin ingin mereset tiket ini ?",
1429
1429
  "not_scan_in": "Belum di scan masuk",
1430
1430
  "not_scan_out": "Belum di scan keluar",
1431
+ "notyet_scan_temp_out": "Belum pernah scan keluar sementara",
1431
1432
  "qr_info": "Informasi",
1432
1433
  "qr_msg": "Kode QR belum pernah dipindai",
1433
1434
  "reset": "RESET",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "esoftplay-event",
3
- "version": "0.0.1-c",
3
+ "version": "0.0.1-e",
4
4
  "description": "event module on esoftplay framework",
5
5
  "main": "index.js",
6
6
  "scripts": {