esoftplay-event 0.0.2 → 0.0.3

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 (100) hide show
  1. package/event/additional.tsx +1 -1
  2. package/event/additional_input.tsx +15 -0
  3. package/event/additional_new.tsx +565 -0
  4. package/event/artist.tsx +14 -34
  5. package/event/artist_detail.tsx +336 -239
  6. package/event/artist_detail_multi.tsx +266 -157
  7. package/event/artist_detailv2.tsx +129 -69
  8. package/event/artistv2.tsx +5 -13
  9. package/event/button.tsx +2 -2
  10. package/event/button_order_detail.tsx +20 -8
  11. package/event/capture.tsx +2 -0
  12. package/event/checkout.ts +135 -0
  13. package/event/countdown.tsx +13 -9
  14. package/event/countdown_base.tsx +88 -48
  15. package/event/countdown_event.tsx +3 -0
  16. package/event/countdown_timestamp.tsx +106 -0
  17. package/event/coupon.tsx +1 -1
  18. package/event/coupon_generate.tsx +35 -22
  19. package/event/detail.tsx +9 -15
  20. package/event/detail2.tsx +63 -61
  21. package/event/dialog_custom.tsx +67 -0
  22. package/event/exchange_ticket_list.tsx +23 -14
  23. package/event/exchange_ticket_result.tsx +1 -1
  24. package/event/firebase_socket.ts +14 -12
  25. package/event/htmltext.tsx +40 -28
  26. package/event/index.tsx +8 -2
  27. package/event/label_input.tsx +2 -2
  28. package/event/layout.tsx +312 -0
  29. package/event/loading_page.tsx +62 -82
  30. package/event/message.tsx +2 -2
  31. package/event/order_detail.tsx +408 -477
  32. package/event/order_detail_addons.tsx +60 -0
  33. package/event/order_detail_addons_booked.tsx +61 -0
  34. package/event/order_detail_coupon.tsx +66 -0
  35. package/event/order_detail_instruction.tsx +96 -0
  36. package/event/order_detail_payment.tsx +1 -1
  37. package/event/order_detail_reschedule.tsx +109 -0
  38. package/event/order_detail_return.tsx +231 -0
  39. package/event/order_detail_review.tsx +174 -0
  40. package/event/order_detail_share.tsx +304 -0
  41. package/event/order_detail_tnc.tsx +76 -0
  42. package/event/order_detail_upgrade.tsx +140 -90
  43. package/event/order_detail_upgrade_payment.tsx +120 -38
  44. package/event/order_detail_visitor.tsx +21 -10
  45. package/event/order_detail_waiting.tsx +3 -3
  46. package/event/order_history.tsx +1 -1
  47. package/event/order_item.tsx +1 -1
  48. package/event/order_lottery.tsx +1 -1
  49. package/event/order_reschedule.tsx +29 -16
  50. package/event/order_share_to.tsx +14 -0
  51. package/event/order_waiting.tsx +1 -1
  52. package/event/payment_subscribe.tsx +18 -0
  53. package/event/point_events.tsx +35 -0
  54. package/event/point_redemption.tsx +101 -0
  55. package/event/point_redemption_exchange.tsx +60 -0
  56. package/event/point_redemption_input.tsx +56 -0
  57. package/event/point_redemption_success.tsx +50 -0
  58. package/event/point_summary.tsx +48 -0
  59. package/event/popup.tsx +4 -4
  60. package/event/queue.tsx +111 -0
  61. package/event/queue_pricing.tsx +17 -6
  62. package/event/review_add.tsx +2 -2
  63. package/event/scan_item.tsx +1 -1
  64. package/event/schedule.tsx +33 -30
  65. package/event/schedule2.tsx +86 -0
  66. package/event/seat.tsx +135 -374
  67. package/event/seat_map.tsx +8 -8
  68. package/event/seat_map_new.tsx +211 -38
  69. package/event/step.tsx +1 -1
  70. package/event/test.tsx +8 -8
  71. package/event/ticket.tsx +326 -0
  72. package/event/ticket_list.tsx +316 -258
  73. package/event/ticket_list2.tsx +349 -224
  74. package/event/ticket_list_item.tsx +61 -0
  75. package/event/ticket_list_new.tsx +710 -0
  76. package/event/tms_add_result.tsx +10 -5
  77. package/event/tms_check_ticket_result.tsx +16 -7
  78. package/event/tms_dashboard.tsx +87 -12
  79. package/event/tms_gate.tsx +32 -15
  80. package/event/tms_home.tsx +178 -92
  81. package/event/tms_idcard.tsx +43 -26
  82. package/event/tms_in.tsx +2 -3
  83. package/event/tms_in_failed.tsx +1 -1
  84. package/event/tms_in_hall.tsx +4 -1
  85. package/event/tms_in_hall_failed.tsx +36 -16
  86. package/event/tms_in_log.tsx +9 -11
  87. package/event/tms_in_success.tsx +13 -8
  88. package/event/tms_log.tsx +16 -17
  89. package/event/tms_out_hall_failed.tsx +1 -1
  90. package/event/tms_out_temporary.tsx +3 -4
  91. package/event/token_order.tsx +103 -0
  92. package/event/token_payment.tsx +79 -0
  93. package/event/visitor_index.tsx +60 -49
  94. package/event/visitor_input.tsx +336 -54
  95. package/event/visitor_inputv2.tsx +173 -88
  96. package/event/voucher.tsx +1 -1
  97. package/id.json +76 -4
  98. package/package.json +1 -1
  99. package/event/secure_page.debug.tsx +0 -34
  100. package/event/secure_page.live.tsx +0 -35
@@ -7,7 +7,6 @@ import { LibIcon } from 'esoftplay/cache/lib/icon/import';
7
7
  import { LibInfinite } from 'esoftplay/cache/lib/infinite/import';
8
8
  import { LibKeyboard_avoid } from 'esoftplay/cache/lib/keyboard_avoid/import';
9
9
  import { LibNavigation } from 'esoftplay/cache/lib/navigation/import';
10
- import { LibObject } from 'esoftplay/cache/lib/object/import';
11
10
  import { LibPicture } from 'esoftplay/cache/lib/picture/import';
12
11
  import { LibProgress } from 'esoftplay/cache/lib/progress/import';
13
12
  import { LibSlidingup } from 'esoftplay/cache/lib/slidingup/import';
@@ -16,7 +15,6 @@ import { LibTextstyle } from 'esoftplay/cache/lib/textstyle/import';
16
15
  import { LibToastProperty } from 'esoftplay/cache/lib/toast/import';
17
16
  import { LibUtils } from 'esoftplay/cache/lib/utils/import';
18
17
  import esp from 'esoftplay/esp';
19
- import useGlobalState from 'esoftplay/global';
20
18
  import useSafeState from 'esoftplay/state';
21
19
  import { useRef } from 'react';
22
20
 
@@ -33,8 +31,6 @@ export interface EventVisitor_inputv2Props {
33
31
  navigation: any
34
32
  }
35
33
 
36
- const inputsState = useGlobalState<any>({})
37
-
38
34
  export default function m(props: EventVisitor_inputv2Props): any {
39
35
  let _data: any = LibNavigation.getArgs(props, 'data')
40
36
  const { msg, url } = LibNavigation.getArgsAll(props)
@@ -46,14 +42,15 @@ export default function m(props: EventVisitor_inputv2Props): any {
46
42
  const [counter, setCounter] = useSafeState(1)
47
43
  const [listClaim, setListClaim] = useSafeState()
48
44
  const [selectedCode, setSelectedCode] = useSafeState()
45
+ const [token, setToken] = useSafeState()
49
46
 
50
47
  const dialogListClaim = useRef<LibSlidingup>(null)
51
48
  const dialogClaim = useRef<LibSlidingup>(null)
49
+ let inputName = useRef<EventInput_rectangle>(null)
50
+ let inputToken = useRef<EventInput_rectangle>(null)
51
+
52
52
 
53
53
  let _tabs: any = getData()?.list
54
- function setText(list_id: string): (name: string) => void {
55
- return (name) => inputsState.set(LibObject.set(inputsState.get(), name)(list_id))
56
- }
57
54
 
58
55
  useEffect(() => {
59
56
  loadData()
@@ -86,26 +83,62 @@ export default function m(props: EventVisitor_inputv2Props): any {
86
83
  }
87
84
  }
88
85
 
89
- function send(): void {
90
- var post: any = undefined
91
- const inputs = inputsState.get()
92
- post = {
93
- name: Object.values(inputs).join("|"),
94
- list_id: Object.keys(inputs).join("|")
86
+ function assignToken() {
87
+ if (selectedCode?.use_token == 1 && token != 0 && token > getData()?.token_remaining) {
88
+ LibToastProperty?.show(esp.lang("event/visitor_inputv2", "max_token_is") + getData()?.token_remaining)
89
+ return
90
+ }
91
+
92
+ let post: any = {
93
+ name: inputName?.current?.getText(),
94
+ code: selectedCode?.access_code
95
+ }
96
+
97
+ if (selectedCode?.use_token == 1) {
98
+ post.token = inputToken?.current?.getText()
95
99
  }
96
- LibDialog.confirm(esp.lang("event/visitor_input", "confirm_title"), esp.lang("event/visitor_input", "confirm_msg"), esp.lang("event/visitor_input", "confirm_ok"), () => {
97
- LibProgress.show(esp.lang("event/visitor_input", "confirm_wait"))
98
- new LibCurl('event_exhibitor_staff?contact_id=' + data.contact_id, post, (res, msg) => {
100
+
101
+ LibDialog.confirm(esp.lang("event/visitor_input", "confirm_title"), esp.lang("event/visitor_inputv2", "confirm_input_token"), esp.lang("event/visitor_inputv2", "yes"), () => {
102
+ LibProgress.show(esp.lang("event/visitor_inputv2", "please_wait"))
103
+ new LibCurl('event_exhibitor_staff_token', post, (res, msg) => {
99
104
  LibProgress.hide()
100
105
  LibDialog.info(esp.lang("event/visitor_input", "confirm_success"), msg);
101
- LibNavigation.reset()
102
- // BigbangIndexProperty.setTab(0)
103
- // LibNavigation.navigate('bigbang/notif_index', { tabIndex: 0 }) // ini notifnya di perbarui
106
+ loadData()
107
+ setCounter(counter + 1)
108
+ dialogClaim?.current?.hide()
104
109
  }, (error) => {
110
+ dialogClaim?.current?.hide()
105
111
  LibProgress.hide()
106
112
  LibDialog.warning(esp.lang("event/visitor_input", "confirm_failed"), error?.message)
107
113
  })
108
- }, esp.lang("event/visitor_input", "confirm_cancel"), () => { })
114
+
115
+ }, esp.lang("event/visitor_inputv2", "no"), () => { })
116
+ }
117
+
118
+ function withdrawToken() {
119
+ LibDialog.warningConfirm(esp.lang("event/visitor_inputv2", "warning"), esp.lang("event/visitor_inputv2", "confirm_withdraw_token"), esp.lang("event/visitor_inputv2", "yes"), () => {
120
+ let post = {
121
+ token: inputToken?.current?.getText(),
122
+ code: selectedCode?.access_code
123
+ }
124
+ LibProgress.show(esp.lang("event/visitor_inputv2", "please_wait"))
125
+ esp.log({ post });
126
+ new LibCurl('event_exhibitor_staff_token_withdraw', post, (res, msg) => {
127
+ LibProgress.hide()
128
+ LibDialog.info(esp.lang("event/visitor_input", "confirm_success"), msg);
129
+ loadData()
130
+ setCounter(counter + 1)
131
+ dialogClaim?.current?.hide()
132
+ }, (error) => {
133
+ dialogClaim?.current?.hide()
134
+ LibProgress.hide()
135
+ LibDialog.warning(esp.lang("event/visitor_input", "confirm_failed"), error?.message)
136
+ })
137
+
138
+
139
+ }, esp.lang("event/visitor_inputv2", "no"), () => {
140
+
141
+ })
109
142
  }
110
143
 
111
144
  function renderTabs(item: any, i: number) {
@@ -193,7 +226,7 @@ export default function m(props: EventVisitor_inputv2Props): any {
193
226
  <LibIcon.Ionicons name='copy' size={16} style={applyStyle({ color: item.is_used == 1 ? "#c4c4c4" : "#2980b9", marginLeft: 7 })} />
194
227
  </TouchableOpacity>
195
228
  <View style={{ flex: 1, justifyContent: 'flex-end', flexDirection: 'row', alignContent: 'center', alignItems: 'center' }}>
196
- <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 13, fontWeight: "normal", fontStyle: "normal", lineHeight: 22, letterSpacing: 0, color: "#9b9b9b", }}>{"Belum digunakan"}</Text>
229
+ <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 13, fontWeight: "normal", fontStyle: "normal", lineHeight: 22, letterSpacing: 0, color: "#9b9b9b", }}>{item?.is_used == 1 ? "" : esp.lang("event/visitor_inputv2", "notyet_used")}</Text>
197
230
  <TouchableOpacity onPress={() => {
198
231
  dialogClaim?.current?.show()
199
232
  setSelectedCode(item)
@@ -202,8 +235,27 @@ export default function m(props: EventVisitor_inputv2Props): any {
202
235
  </TouchableOpacity>
203
236
  </View>
204
237
  </View>
205
- <View style={{ padding: 10, borderWidth: 1, borderColor: LibStyle.colorBgGrey, borderRadius: 5, marginTop: 5 }}>
206
238
 
239
+ <View style={{ padding: 5, borderWidth: 1, borderColor: LibStyle.colorBgGrey, borderRadius: 5, marginTop: 5 }}>
240
+ <Text allowFontScaling={false} style={{ fontSize: 10, color: '#9b9b9b' }}>{esp.lang("event/visitor_inputv2", "name")}</Text>
241
+ <Text allowFontScaling={false} style={{ fontSize: 14 }}>{item.name == null ? "-" : item.name}</Text>
242
+ {
243
+ item?.use_token == 1 &&
244
+ <View style={{ marginTop: 5, flexDirection: 'row', justifyContent: 'space-between' }}>
245
+ <View style={{ flex: 1 }}>
246
+ <Text allowFontScaling={false} style={{ fontSize: 10, color: '#9b9b9b' }}>{esp.lang("event/visitor_inputv2", "total_token")}</Text>
247
+ <Text allowFontScaling={false} style={{ fontSize: 14 }}>{Number(item?.token)}</Text>
248
+ </View>
249
+ <View style={{ flex: 1 }}>
250
+ <Text allowFontScaling={false} style={{ fontSize: 10, color: '#9b9b9b' }}>{esp.lang("event/visitor_inputv2", "token_used")}</Text>
251
+ <Text allowFontScaling={false} style={{ fontSize: 14 }}>{Number(item?.token_used)}</Text>
252
+ </View>
253
+ <View style={{ flex: 1 }}>
254
+ <Text allowFontScaling={false} style={{ fontSize: 10, color: '#9b9b9b' }}>{esp.lang("event/visitor_inputv2", "token_left")}</Text>
255
+ <Text allowFontScaling={false} style={{ fontSize: 14 }}>{Number(item?.token_remaining)}</Text>
256
+ </View>
257
+ </View>
258
+ }
207
259
  </View>
208
260
  </View>
209
261
  )
@@ -238,33 +290,55 @@ export default function m(props: EventVisitor_inputv2Props): any {
238
290
  },
239
291
  {
240
292
  id: 2,
241
- title: "Total Token",
293
+ title: esp.lang("event/visitor_inputv2", "total_token"),
242
294
  color: '#d7edf8',
243
295
  textColor: '#64b0e0',
244
- total: 4275
296
+ total: LibUtils.number(getData()?.token)
245
297
  },
246
298
  {
247
299
  id: 3,
248
- title: "Token dialokasikan",
300
+ title: esp.lang("event/visitor_inputv2", "token_shared"),
249
301
  color: '#fbe3dd',
250
302
  textColor: '#ec7463',
251
- total: 4170
303
+ total: LibUtils.number(getData()?.token_shared)
252
304
  },
253
305
  {
254
306
  id: 4,
255
- title: "Token tersisa",
307
+ title: esp.lang("event/visitor_inputv2", "token_left"),
256
308
  color: '#fef2de',
257
309
  textColor: '#f6c67f',
258
- total: 105
310
+ total: LibUtils.number(getData()?.token_remaining)
259
311
  },
260
312
  ]
261
313
 
314
+ esp.log({ selectedCode });
315
+
262
316
  return (
263
317
  <View style={{ flex: 1 }}>
264
318
  <EventHeader title={esp.lang("event/visitor_input", "title_input_exhibitor")} subtitle={esp.lang("event/visitor_input", "total_staff", LibUtils.number(data.qty))} />
265
319
  <LibKeyboard_avoid style={{ flex: 1 }}>
266
320
  <>
267
- {/* <ComponentTabheader titles={tabTitles} activeIndex={tabIndex} onPress={(index) => setTabIndex(index)} /> */}
321
+ {
322
+ activeTab?.type == "STAFF" && data?.use_token == 1 &&
323
+ <View style={{ padding: 10, paddingBottom: 0, flexDirection: 'row', justifyContent: 'space-between', flexWrap: 'wrap' }}>
324
+ {
325
+ menuHeader?.map((item, i) => {
326
+ return (
327
+ <View key={i} style={{ width: (LibStyle.width - 30) / 2, alignContent: 'center', alignItems: 'center', marginBottom: 10, overflow: 'hidden', backgroundColor: item.color, borderRadius: 5, padding: 5, flexDirection: 'row', justifyContent: 'space-between' }}>
328
+ <View style={{ flex: 2, }}>
329
+ <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 13, fontWeight: "bold", fontStyle: "normal", letterSpacing: 0, color: "#4b4b4b" }}>{item.title}</Text>
330
+ </View>
331
+ <View style={{ marginLeft: 5, flex: 1 }}>
332
+ <View style={{ alignContent: 'center', alignItems: 'center', backgroundColor: item.textColor, paddingHorizontal: 7, paddingVertical: 3, borderRadius: 5 }}>
333
+ <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 13, fontWeight: "bold", fontStyle: "normal", letterSpacing: 0, color: "#fff" }}>{item.total}</Text>
334
+ </View>
335
+ </View>
336
+ </View>
337
+ )
338
+ })
339
+ }
340
+ </View>
341
+ }
268
342
 
269
343
  <View style={{ height: 35, marginBottom: 2, flexDirection: 'row', backgroundColor: '#fff', ...LibStyle.elevation(2) }} >
270
344
  <ScrollView horizontal showsHorizontalScrollIndicator={false} >
@@ -280,43 +354,17 @@ export default function m(props: EventVisitor_inputv2Props): any {
280
354
  // style={{ flex: 1 }}
281
355
  ListHeaderComponent={
282
356
  <>
283
- {
357
+ {/* {
284
358
  activeTab?.ondate != "0000-00-00" &&
285
359
  <View style={{ margin: 10, marginBottom: 0 }}>
286
360
  <Text allowFontScaling={false} style={{ fontWeight: 'bold', color: LibStyle.colorGreen }}>{"Tanggal berlaku " + LibUtils.moment(activeTab?.ondate).format("DD MMMM YYYY")}</Text>
287
361
  </View>
288
- }
289
- {
290
- activeTab?.type == "STAFF" &&
291
- <View style={{ padding: 10, paddingBottom: 0, flexDirection: 'row', justifyContent: 'space-between', flexWrap: 'wrap' }}>
292
- {
293
- menuHeader?.map((item, i) => {
294
- return (
295
- <View key={i} style={{ width: (LibStyle.width - 30) / 2, alignContent: 'center', alignItems: 'center', marginBottom: 10, overflow: 'hidden', backgroundColor: item.color, borderRadius: 5, padding: 5, flexDirection: 'row', justifyContent: 'space-between' }}>
296
- <View style={{ flex: 2, }}>
297
- <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 13, fontWeight: "bold", fontStyle: "normal", letterSpacing: 0, color: "#4b4b4b" }}>{item.title}</Text>
298
- </View>
299
- <View style={{ marginLeft: 5, flex: 1 }}>
300
- <View style={{ alignContent: 'center', alignItems: 'center', backgroundColor: item.textColor, paddingHorizontal: 7, paddingVertical: 3, borderRadius: 5 }}>
301
- <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 13, fontWeight: "bold", fontStyle: "normal", letterSpacing: 0, color: "#fff" }}>{item.total}</Text>
302
- </View>
303
- </View>
304
- </View>
305
- )
306
- })
307
- }
308
- </View>
309
- }
310
-
362
+ } */}
311
363
  </>
312
364
  }
313
365
  removeClippedSubviews={Platform.OS == 'android'}
314
366
  renderItem={renderItem}
315
367
  />
316
- {
317
- activeTab?.type == "STAFF" &&
318
- <EventButton style={{ backgroundColor: '#00b894', margin: 5 }} label={esp.lang("event/visitor_input", "save_btn")} onPress={() => { send() }} />
319
- }
320
368
  </>
321
369
  </LibKeyboard_avoid>
322
370
  <LibSlidingup ref={dialogListClaim}>
@@ -327,8 +375,6 @@ export default function m(props: EventVisitor_inputv2Props): any {
327
375
  </View>
328
376
  <LibInfinite
329
377
  url={listClaim?.url}
330
- // isDebug={1}
331
- // key={}
332
378
  removeClippedSubviews={Platform.OS == 'android'}
333
379
  renderItem={(item: any, i: number) => {
334
380
  return (
@@ -348,50 +394,89 @@ export default function m(props: EventVisitor_inputv2Props): any {
348
394
  <LibSlidingup ref={dialogClaim}>
349
395
  <View style={{ backgroundColor: 'white', padding: 15, maxHeight: LibStyle.height * 0.7, borderTopLeftRadius: 5, borderTopRightRadius: 5 }} >
350
396
  <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignContent: 'center', alignItems: 'center' }}>
351
- <LibTextstyle text={"Kode"} textStyle="headline" />
397
+ <LibTextstyle text={esp.lang("event/visitor_inputv2", "code")} textStyle="headline" />
352
398
  <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 16, fontWeight: "bold", fontStyle: "normal", lineHeight: 22, letterSpacing: 0, color: "#00b894" }}>{selectedCode?.access_code}</Text>
353
399
  </View>
354
400
 
355
- <EventLabel_input label={"Masukkan nama"} />
401
+ <EventLabel_input label={esp.lang("event/visitor_inputv2", "input_name")} />
356
402
  <EventInput_rectangle
403
+ ref={inputName}
357
404
  returnKeyType="next"
358
- style={applyStyle({ borderRadius: 4, borderColor: '#c4c4c4', height: 35, marginTop: 8, backgroundColor: '#fff' })}
359
- onChangeText={(t) => {
360
-
361
- }}
362
- placeholder={"Masukkan nama"}
405
+ style={applyStyle({ borderRadius: 4, borderColor: '#c4c4c4', marginTop: 8, backgroundColor: '#fff' })}
406
+ inputStyle={{ color: selectedCode?.is_used == "1" ? "#c4c4c4" : "#000" }}
407
+ onSubmitEditing={() => inputToken?.current?.focus()}
408
+ placeholder={esp.lang("event/visitor_inputv2", "input_name")}
409
+ defaultValue={selectedCode?.name}
410
+ editable={selectedCode?.is_used == "1" ? false : true}
363
411
  />
364
412
 
413
+
365
414
  <View style={{ flexDirection: 'row', justifyContent: 'flex-end', alignContent: 'center', alignItems: 'center' }}>
366
- <View style={{ flex: 2 }}>
367
- <EventLabel_input label={"Masukkan token"} />
368
- <EventInput_rectangle
369
- returnKeyType="next"
370
- style={applyStyle({ borderRadius: 4, borderColor: '#c4c4c4', height: 35, marginTop: 8, backgroundColor: '#fff' })}
371
- onChangeText={(t) => {
372
-
373
- }}
374
- placeholder={"Masukkan token"}
375
- />
376
- </View>
377
- <View style={{ flex: 1, justifyContent: 'flex-end', marginLeft: 10, marginTop: 5 }}>
378
- <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 12, fontWeight: "bold", fontStyle: "normal", letterSpacing: 0, color: "#4b4b4b" }}>{"Token terpakai"}</Text>
379
- <View style={{ marginTop: 12, alignContent: 'center', alignItems: 'center', backgroundColor: "#ec7463", paddingHorizontal: 7, paddingVertical: 3, borderRadius: 5 }}>
380
- <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 12, fontWeight: "bold", fontStyle: "normal", letterSpacing: 0, color: "#fff" }}>{10}</Text>
415
+ {
416
+ selectedCode?.use_token == 1 &&
417
+ <View style={{ flex: 2 }}>
418
+ <EventLabel_input label={esp.lang("event/visitor_inputv2", "input_token")} mandatory />
419
+ <EventInput_rectangle
420
+ ref={inputToken}
421
+ keyboardType='phone-pad'
422
+ returnKeyType="done"
423
+ style={applyStyle({ borderRadius: 4, borderColor: '#c4c4c4', marginTop: 8, backgroundColor: '#fff' })}
424
+ placeholder={esp.lang("event/visitor_inputv2", "input_token")}
425
+ onChangeText={(t) => setToken(t)}
426
+ onSubmitEditing={assignToken}
427
+ defaultValue={selectedCode?.token != "0" ? selectedCode?.token : ''}
428
+ />
381
429
  </View>
382
- </View>
383
- <View style={{ flex: 1, justifyContent: 'flex-end', marginLeft: 10, marginTop: 5 }}>
384
- <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 12, fontWeight: "bold", fontStyle: "normal", letterSpacing: 0, color: "#4b4b4b" }}>{"Token tersisa"}</Text>
385
- <View style={{ marginTop: 12, alignContent: 'center', alignItems: 'center', backgroundColor: "#f6c67f", paddingHorizontal: 7, paddingVertical: 3, borderRadius: 5 }}>
386
- <Text allowFontScaling={false} style={{ fontFamily: "Arial", fontSize: 12, fontWeight: "bold", fontStyle: "normal", letterSpacing: 0, color: "#fff" }}>{120}</Text>
430
+ }
431
+ {
432
+ selectedCode?.use_token == 1 &&
433
+ <View style={{ flex: 1, justifyContent: 'flex-end', marginLeft: 10, }}>
434
+ <EventLabel_input label={esp.lang("event/visitor_inputv2", "token_used")} />
435
+ <View style={{ height: 35, marginTop: 8, alignContent: 'center', justifyContent: 'center' }}>
436
+ <Text allowFontScaling={false} style={{ fontSize: 14 }}>{LibUtils.number(selectedCode?.token_used)}</Text>
437
+ </View>
387
438
  </View>
388
- </View>
439
+ }
440
+ {
441
+ selectedCode?.use_token == 1 &&
442
+ <View style={{ flex: 1, justifyContent: 'flex-end', marginLeft: 10 }}>
443
+ <EventLabel_input label={esp.lang("event/visitor_inputv2", "token_left")} />
444
+ <View style={{ height: 35, marginTop: 8, alignContent: 'center', justifyContent: 'center' }}>
445
+ <Text allowFontScaling={false} style={{ fontSize: 14 }}>{LibUtils.number(selectedCode?.token_remaining)}</Text>
446
+ </View>
447
+ </View>
448
+ }
389
449
  </View>
390
450
 
391
- <EventButton style={{ backgroundColor: '#00b894', marginTop: 15 }} label={esp.lang("event/visitor_input", "save_btn")} onPress={() => { }} />
451
+ <View style={{ marginTop: 15, flexDirection: 'row', alignContent: 'center', alignItems: 'center', justifyContent: 'center' }}>
452
+ {
453
+ selectedCode?.use_token == 1 && selectedCode?.token_remaining != 0 &&
454
+ <View style={{ marginRight: 5, flex: 1 }}>
455
+ <EventButton
456
+ label={esp.lang("event/visitor_inputv2", "withdraw_token")}
457
+ onPress={() => {
458
+ withdrawToken()
459
+ }}
460
+ backgroundColor='#fff'
461
+ borderColor={LibStyle.colorRed}
462
+ fontColor={LibStyle.colorRed}
463
+ style={{ borderRadius: 5 }}
464
+ />
465
+ </View>
466
+ }
392
467
 
468
+ <View style={{ marginLeft: (selectedCode?.token != "0" && selectedCode?.token_remaining != 0) ? 5 : 0, flex: 1 }}>
469
+ <EventButton
470
+ style={{ backgroundColor: '#00b894', borderRadius: 5 }}
471
+ label={esp.lang("event/visitor_input", "save_btn")}
472
+ onPress={() => {
473
+ assignToken()
474
+ }} />
475
+ </View>
476
+ </View>
393
477
  </View>
394
478
  </LibSlidingup>
479
+
395
480
  </View>
396
481
  )
397
482
  }
package/event/voucher.tsx CHANGED
@@ -34,7 +34,7 @@ export default function m(props: EventVoucherProps): any {
34
34
  let voucherCode = React.useRef<LibInput>(null)
35
35
 
36
36
  useEffect(() => {
37
- esp.isDebug("payment_voucher") && EventConfigProperty.curlConfig('payment_config')
37
+ EventConfigProperty.curlConfig('payment_config')
38
38
  return () => LibNavigation.cancelBackResult(LibNavigation.getResultKey(props))
39
39
  }, [])
40
40
 
package/id.json CHANGED
@@ -469,6 +469,8 @@
469
469
  "input_nominal": "masukkan nominal kupon",
470
470
  "nominal_empty": "Nominal kupon tidak boleh kosong",
471
471
  "quota_left": "sisa kuota generate",
472
+ "select_coupon": "Pilih kupon untuk dikirm",
473
+ "select_coupon_alert": "Silahkan pilih kupon terlebih dahulu",
472
474
  "send_btn": "KIRIM",
473
475
  "send_cancel": "BATAL",
474
476
  "send_failed": "Terjadi Kesalahan",
@@ -687,6 +689,7 @@
687
689
  "total_scan": "Total Tiket Terpindai"
688
690
  },
689
691
  "event/exchange_ticket_result": {
692
+ "available": "dapat ditukarkan",
690
693
  "cancel": "Batal",
691
694
  "choose": "Pilih",
692
695
  "err": "Oops",
@@ -930,8 +933,10 @@
930
933
  "event/order_detail": {
931
934
  "Checked_within_10_minutes_after_payment_is_made": "Dicek dalam 10 menit setelah pembayaran dilakukan",
932
935
  "This_Event_Has_Changed_the_Event_Date_Please_Reschedule_or_Refund": "Event ini Mengalami Perubahan Tanggal Event, Silahkan Reschedule atau Melakukan Refund",
936
+ "addons": "Pilihan Tambahan",
933
937
  "already_follow": "Sudah memilih ",
934
938
  "already_join_lucky_draw": "Pilihan sudah dibuat",
939
+ "back": "Kembali",
935
940
  "back_err": "Oops",
936
941
  "back_to_homepage": "Kembali ke Halaman Utama",
937
942
  "birtdate": "Tanggal Lahir",
@@ -961,6 +966,7 @@
961
966
  "leave_review": "Leave a Review",
962
967
  "load_err": "Oops",
963
968
  "location_empty": "Lokasi belum dipilih",
969
+ "next": "Selanjutnya",
964
970
  "not_allowed_ss": "Harap hindari membuat screenshot atau foto tiket. Tunjukkan tiket asli di aplikasi %s saat masuk ke area event. Terima kasih!",
965
971
  "not_now": "Nanti Saja",
966
972
  "order_detail": "Order Detail",
@@ -986,6 +992,7 @@
986
992
  "share_ticket": "Bagikan Tiket ke Temanmu",
987
993
  "share_title": "Informasi",
988
994
  "shared": "Sudah dibagikan",
995
+ "show_qr": "Tampilkan QR",
989
996
  "subtitle_addons": "Biar pengalamanmu makin lengkap",
990
997
  "subtitle_lucky_draw": "Hadiah seru menantimu, buruan ikutan!",
991
998
  "success_copied": "Berhasil Disalin ",
@@ -998,6 +1005,7 @@
998
1005
  "used": "digunakan",
999
1006
  "used_today": "digunakan hari ini, akan direset kembali besok pukul 05:00 WIB",
1000
1007
  "virtual_account_number": "No.Virtual Account",
1008
+ "voucher_or_coupon": "Voucher / Kupon",
1001
1009
  "wait": "Mohon tunggu",
1002
1010
  "warning": "Peringatan"
1003
1011
  },
@@ -1013,6 +1021,16 @@
1013
1021
  "transfer_mbanking_instruction": "Petunjuk Transfer mBanking",
1014
1022
  "virtual_number_account": "No Virtual Account :"
1015
1023
  },
1024
+ "event/order_detail_return": {
1025
+ "send_back_ticket": "Kembalikan Tiket"
1026
+ },
1027
+ "event/order_detail_share": {
1028
+ "cancel": "Batal",
1029
+ "chose_ticket": "PILIH TIKET",
1030
+ "select_all": "Pilih Semua",
1031
+ "share_ticket": "Bagikan Tiket",
1032
+ "ticket_will_share_to": "Tiket akan dibagikan kepada"
1033
+ },
1016
1034
  "event/order_detail_upgrade": {
1017
1035
  "btn_next": "Selanjutnya",
1018
1036
  "current_ticket": "TIKET KAMU SAAT INI",
@@ -1086,6 +1104,7 @@
1086
1104
  "no": "Tidak",
1087
1105
  "oops": "Oops",
1088
1106
  "please_enter_all_point": "Silahkan masukkan semua kupon lucky draw anda",
1107
+ "please_wait": "Mohon tunggu",
1089
1108
  "submit": "Lanjutkan untuk konfirmasi",
1090
1109
  "token_for_luckydraw": " kupon untuk mengikuti undian Lucky Draw",
1091
1110
  "u_have": "Anda mempunyai ",
@@ -1108,6 +1127,7 @@
1108
1127
  "no": "Tidak",
1109
1128
  "no_ticket_need_reschedule_or_refund": "Tidak ada Tiket yang perlu di Reschedule / Refund",
1110
1129
  "ok": "Ok",
1130
+ "price+tax": "(harga + pajak)",
1111
1131
  "process_er": "Oops",
1112
1132
  "qty_left": "Tersisa %s Tiket",
1113
1133
  "ready_ticket": "Tiket yang Tersedia",
@@ -1268,7 +1288,7 @@
1268
1288
  "oops": "Oops"
1269
1289
  },
1270
1290
  "event/scan_item": {
1271
- "scan_on": "\"Scan pada \" "
1291
+ "scan_on": "Scan pada "
1272
1292
  },
1273
1293
  "event/schedule": {
1274
1294
  "header_title": "Info Artist",
@@ -1354,6 +1374,14 @@
1354
1374
  "zoom_out": "Memperkecil denah..",
1355
1375
  "zoom_out_max": "Tidak dapat memperkecil lagi"
1356
1376
  },
1377
+ "event/seat_map_new": {
1378
+ "failed_sync": "Gagal sinkronisasi kursi",
1379
+ "other_user": "Seat sedang dipilih user lain",
1380
+ "picked_byother": "Dipilih orang lain",
1381
+ "please_choose_seat": "Silakan tentukan kursi untuk tiket ",
1382
+ "seat_not_avail": "Seat tidak tersedia",
1383
+ "yes_next": "Ya, Lanjutkan"
1384
+ },
1357
1385
  "event/seat_map_test": {
1358
1386
  "front": "DEPAN",
1359
1387
  "header_title": "Pilih Kursi"
@@ -1468,6 +1496,8 @@
1468
1496
  "gate_scanner": "Gate Scanner",
1469
1497
  "log_exchange": "Log Penukaran Tiket",
1470
1498
  "log_tms": "Log TMS (Gate + Hall)",
1499
+ "please_wait_loading_data_gate": "Mohon tunggu sedang mengambil data gate",
1500
+ "please_wait_loading_data_hall": "Mohon tunggu sedang mengambil data hall",
1471
1501
  "qc_idcard": "QC ID Card (Print)"
1472
1502
  },
1473
1503
  "event/tms_event_list": {
@@ -1507,10 +1537,14 @@
1507
1537
  "warning_load": "Oops"
1508
1538
  },
1509
1539
  "event/tms_idcard": {
1540
+ "backk": "KEMBALI",
1510
1541
  "btn_back": "Kembali",
1511
1542
  "company": "Perusahaan",
1512
1543
  "header": "ID CARD",
1544
+ "hold_idcard": "Tahan ID CARD",
1513
1545
  "name": "Nama",
1546
+ "success": "Berhasil!",
1547
+ "token": "TOKEN",
1514
1548
  "visitor": "Pengunjung"
1515
1549
  },
1516
1550
  "event/tms_in": {
@@ -1809,7 +1843,7 @@
1809
1843
  "btn_save": "Simpan",
1810
1844
  "button_cancel": "Batal",
1811
1845
  "button_ok": "Ok",
1812
- "entry_full_data_to_continue": "Lengkapi Data anda untuk melanjutkan",
1846
+ "entry_full_data_to_continue": "Lengkapi Data anda untuk melanjutkan.Gunakan foto anda dengan jelas",
1813
1847
  "err": "Oops!!",
1814
1848
  "label_input_name": "Nama Anda",
1815
1849
  "msg_error_no_photo": "Silahkan Masukkan Foto terlebih dahulu",
@@ -1832,6 +1866,7 @@
1832
1866
  "alert_error_not_empty_code": "Kode Tidak Boleh kosong",
1833
1867
  "alert_success_submit": "Selamat!",
1834
1868
  "err": "Kesalahan",
1869
+ "header_title": "Riwayat Akses",
1835
1870
  "history": "History Staff/PIC/Exhibitor",
1836
1871
  "input_code": "Masukkan Kode...",
1837
1872
  "label_input_code": "Masukkan Kode",
@@ -1845,20 +1880,30 @@
1845
1880
  },
1846
1881
  "event/visitor_input": {
1847
1882
  "back": "Kembali",
1883
+ "code": "Kode",
1848
1884
  "code_inv": "Kode Undangan #",
1849
1885
  "confirm_cancel": "Batal",
1850
1886
  "confirm_failed": "Kesalahan",
1887
+ "confirm_input_token": "Apakah data yang anda masukkan sudah benar?",
1851
1888
  "confirm_msg": "Apakah Data Sudah Benar ?",
1852
1889
  "confirm_ok": "Ya",
1853
1890
  "confirm_success": "Selamat..!",
1854
1891
  "confirm_title": "Konfirmasi",
1855
1892
  "confirm_wait": "Mohon tunggu",
1893
+ "confirm_withdraw_token": "Apakah anda ingin menarik token dari ID Card ini ?",
1894
+ "input_name": "Masukkan nama",
1856
1895
  "input_names": "Nama #%s",
1896
+ "input_token": "Masukkan token",
1857
1897
  "list_claimed": "Daftar klaim kode",
1898
+ "max_token_is": "Maksimal token yang anda punya adalah ",
1899
+ "name": "Nama",
1900
+ "no": "Tidak",
1858
1901
  "not_claimed": "Belum diklaim",
1902
+ "notyet_used": "Belum digunakan",
1859
1903
  "placeholder_input_name": "Masukkan Nama #%s",
1904
+ "please_wait": "Mohon tunggu",
1860
1905
  "resend": "Ulangi",
1861
- "save_btn": "Simpan",
1906
+ "save_btn": "Tambah",
1862
1907
  "see_list_claimed": "Lihat daftar klaim",
1863
1908
  "subtitle_exhibitor": "%s staf",
1864
1909
  "subtitle_total_exhibitor": "Total %s",
@@ -1866,7 +1911,34 @@
1866
1911
  "title": "Oops",
1867
1912
  "title_input_exhibitor": "Masukkan Exhibitors",
1868
1913
  "title_input_exhibitors": "Masukkan Exhibitors",
1869
- "total_staff": "Total %s "
1914
+ "token_left": "Token tersisa",
1915
+ "token_shared": "Token dialokasikan",
1916
+ "token_used": "Total terpakai",
1917
+ "total_staff": "Total %s ",
1918
+ "total_token": "Total token",
1919
+ "warning": "Peringatan",
1920
+ "withdraw_token": "Tarik Token",
1921
+ "yes": "Ya"
1922
+ },
1923
+ "event/visitor_inputv2": {
1924
+ "code": "Kode",
1925
+ "confirm_input_token": "Apakah data yang anda masukkan sudah benar?",
1926
+ "confirm_withdraw_token": "Apakah anda ingin menarik token dari ID Card ini ?",
1927
+ "esp.lang(\"event/visitor_input\", \"confirm_title\")": "Info",
1928
+ "input_name": "Masukkan nama",
1929
+ "input_token": "Masukkan token",
1930
+ "max_token_is": "Maksimal token yang anda punya adalah ",
1931
+ "name": "Nama",
1932
+ "no": "Tidak",
1933
+ "notyet_used": "Belum digunakan",
1934
+ "please_wait": "Mohon tunggu",
1935
+ "token_left": "Token tersisa",
1936
+ "token_shared": "Token dialokasikan",
1937
+ "token_used": "Total terpakai",
1938
+ "total_token": "Total token",
1939
+ "warning": "Peringatan",
1940
+ "withdraw_token": "Tarik Token",
1941
+ "yes": "Ya"
1870
1942
  },
1871
1943
  "event/voucher": {
1872
1944
  "check_wait": "Mohon Tunggu",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "esoftplay-event",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "event module on esoftplay framework",
5
5
  "main": "index.js",
6
6
  "scripts": {