@openeventkit/event-site 2.1.48 → 2.1.50

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 (97) hide show
  1. package/package.json +3 -3
  2. package/src/actions/user-actions.js +9 -10
  3. package/src/components/RegistrationLiteComponent.js +1 -1
  4. package/src/components/VimeoPlayer.js +2 -2
  5. package/src/content/site-settings/index.json +1 -1
  6. package/src/content/sponsors.json +1 -1
  7. package/src/styles/colors.scss +11 -11
  8. package/src/templates/extra-questions-page.js +1 -1
  9. package/src/templates/full-profile-page.js +2 -3
  10. package/src/utils/alerts.js +34 -27
  11. package/src/utils/customErrorHandler.js +4 -4
  12. package/src/utils/ticketConstants.js +10 -0
  13. package/src/components/summit-my-orders-tickets/components/ConfirmPopup/ConfirmPopup.js +0 -96
  14. package/src/components/summit-my-orders-tickets/components/ConfirmPopup/confirm-popup.scss +0 -57
  15. package/src/components/summit-my-orders-tickets/components/DelegatePopup/DelegatePopup.js +0 -50
  16. package/src/components/summit-my-orders-tickets/components/DelegatePopup/delegate-popup.scss +0 -57
  17. package/src/components/summit-my-orders-tickets/components/MyOrdersTickets.js +0 -79
  18. package/src/components/summit-my-orders-tickets/components/OrderDetails/OrderDetails.js +0 -112
  19. package/src/components/summit-my-orders-tickets/components/OrderDetails/order-details.scss +0 -128
  20. package/src/components/summit-my-orders-tickets/components/OrderList/OrderList.js +0 -80
  21. package/src/components/summit-my-orders-tickets/components/OrderList/OrderListItem.js +0 -85
  22. package/src/components/summit-my-orders-tickets/components/OrderList/order-list.scss +0 -60
  23. package/src/components/summit-my-orders-tickets/components/OrderOptions/OrderOptions.js +0 -83
  24. package/src/components/summit-my-orders-tickets/components/OrderOptions/order-options.scss +0 -50
  25. package/src/components/summit-my-orders-tickets/components/OrderSummary/OrderSummary.js +0 -64
  26. package/src/components/summit-my-orders-tickets/components/OrderSummary/OrderSummaryTable.js +0 -97
  27. package/src/components/summit-my-orders-tickets/components/OrderSummary/order-summary.scss +0 -178
  28. package/src/components/summit-my-orders-tickets/components/OrderTicketDetails/OrderTicketDetails.js +0 -102
  29. package/src/components/summit-my-orders-tickets/components/OrderTicketDetails/order-ticket-details.scss +0 -129
  30. package/src/components/summit-my-orders-tickets/components/OrderTicketList/OrderTicketList.js +0 -19
  31. package/src/components/summit-my-orders-tickets/components/OrderTicketList/OrderTicketListItem.js +0 -13
  32. package/src/components/summit-my-orders-tickets/components/OrderTicketList/order-ticket-list.scss +0 -21
  33. package/src/components/summit-my-orders-tickets/components/TicketDetails/TicketDetails.js +0 -93
  34. package/src/components/summit-my-orders-tickets/components/TicketDetails/ticket-details.scss +0 -129
  35. package/src/components/summit-my-orders-tickets/components/TicketList/TicketList.js +0 -65
  36. package/src/components/summit-my-orders-tickets/components/TicketList/TicketListItem.js +0 -16
  37. package/src/components/summit-my-orders-tickets/components/TicketList/ticket-list.scss +0 -21
  38. package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopup.js +0 -186
  39. package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupAssignForm.js +0 -136
  40. package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupEditDetailsForm/TicketPopupEditDetailsForm.js +0 -468
  41. package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupEditDetailsForm/ticket-popup-edit-details-form.scss +0 -71
  42. package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupNotifyForm.js +0 -64
  43. package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupReassignForm.js +0 -193
  44. package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupRefundForm.js +0 -64
  45. package/src/components/summit-my-orders-tickets/components/TicketPopup/ticket-popup.scss +0 -416
  46. package/src/components/summit-my-orders-tickets/context/TicketAssignedContext.js +0 -24
  47. package/src/components/summit-my-orders-tickets/global/constants.js +0 -10
  48. package/src/components/summit-my-orders-tickets/i18n/index.js +0 -37
  49. package/src/components/summit-my-orders-tickets/i18n/locales/en.json +0 -296
  50. package/src/components/summit-my-orders-tickets/i18n/locales/es.json +0 -296
  51. package/src/components/summit-my-orders-tickets/index.js +0 -1
  52. package/src/components/summit-my-orders-tickets/store/actions/base-actions.js +0 -7
  53. package/src/components/summit-my-orders-tickets/store/actions/order-actions.js +0 -96
  54. package/src/components/summit-my-orders-tickets/store/actions/summit-actions.js +0 -64
  55. package/src/components/summit-my-orders-tickets/store/actions/ticket-actions.js +0 -666
  56. package/src/components/summit-my-orders-tickets/store/actions/timer-actions.js +0 -29
  57. package/src/components/summit-my-orders-tickets/store/actions/user-actions.js +0 -42
  58. package/src/components/summit-my-orders-tickets/store/history.js +0 -16
  59. package/src/components/summit-my-orders-tickets/store/index.js +0 -117
  60. package/src/components/summit-my-orders-tickets/store/reducers/base-reducer.js +0 -67
  61. package/src/components/summit-my-orders-tickets/store/reducers/clock-reducer.js +0 -31
  62. package/src/components/summit-my-orders-tickets/store/reducers/order-reducer.js +0 -95
  63. package/src/components/summit-my-orders-tickets/store/reducers/summit-reducer.js +0 -52
  64. package/src/components/summit-my-orders-tickets/store/reducers/ticket-reducer.js +0 -92
  65. package/src/components/summit-my-orders-tickets/store/reducers/user-reducer.js +0 -35
  66. package/src/components/summit-my-orders-tickets/styles/_variables.scss +0 -17
  67. package/src/components/summit-my-orders-tickets/styles/general.scss +0 -17
  68. package/src/components/summit-my-orders-tickets/summit-my-orders-tickets.js +0 -86
  69. package/src/components/summit-my-orders-tickets/util/helpers/capitalizeFirstLetter.js +0 -1
  70. package/src/components/summit-my-orders-tickets/util/helpers/createReducer.js +0 -11
  71. package/src/components/summit-my-orders-tickets/util/helpers/formatCurrency.js +0 -15
  72. package/src/components/summit-my-orders-tickets/util/helpers/getDayNumberFromDate.js +0 -9
  73. package/src/components/summit-my-orders-tickets/util/helpers/getDaysBetweenDates.js +0 -16
  74. package/src/components/summit-my-orders-tickets/util/helpers/getDocumentOffset.js +0 -8
  75. package/src/components/summit-my-orders-tickets/util/helpers/getFormattedDate.js +0 -7
  76. package/src/components/summit-my-orders-tickets/util/helpers/getFormattedTime.js +0 -9
  77. package/src/components/summit-my-orders-tickets/util/helpers/getWindowScroll.js +0 -6
  78. package/src/components/summit-my-orders-tickets/util/helpers/index.js +0 -22
  79. package/src/components/summit-my-orders-tickets/util/index.js +0 -5
  80. package/src/components/summit-my-orders-tickets/util/order/calculateOrderTotals.js +0 -28
  81. package/src/components/summit-my-orders-tickets/util/order/getOrderStatusData.js +0 -71
  82. package/src/components/summit-my-orders-tickets/util/order/index.js +0 -2
  83. package/src/components/summit-my-orders-tickets/util/summit/checkSummitPast.js +0 -10
  84. package/src/components/summit-my-orders-tickets/util/summit/checkSummitStarted.js +0 -5
  85. package/src/components/summit-my-orders-tickets/util/summit/getSummitFormattedDate.js +0 -29
  86. package/src/components/summit-my-orders-tickets/util/summit/getSummitFormattedReassignDate.js +0 -8
  87. package/src/components/summit-my-orders-tickets/util/summit/getSummitLocation.js +0 -9
  88. package/src/components/summit-my-orders-tickets/util/summit/getSummitReassignDate.js +0 -7
  89. package/src/components/summit-my-orders-tickets/util/summit/index.js +0 -7
  90. package/src/components/summit-my-orders-tickets/util/summit/useSummitDetails.js +0 -36
  91. package/src/components/summit-my-orders-tickets/util/ticket/getTicketRole.js +0 -11
  92. package/src/components/summit-my-orders-tickets/util/ticket/getTicketStatusData.js +0 -48
  93. package/src/components/summit-my-orders-tickets/util/ticket/getTicketType.js +0 -1
  94. package/src/components/summit-my-orders-tickets/util/ticket/index.js +0 -4
  95. package/src/components/summit-my-orders-tickets/util/ticket/useTicketDetails.js +0 -60
  96. package/src/components/summit-my-orders-tickets/util/timer/index.js +0 -1
  97. package/src/components/summit-my-orders-tickets/util/timer/useNow.js +0 -8
@@ -1,60 +0,0 @@
1
- @import "../../styles/variables";
2
-
3
- .order-list {
4
- &__title {
5
- margin-top: 30px;
6
- margin-bottom: 30px;
7
- }
8
-
9
- &__pagination {
10
- margin: 30px 0;
11
- text-align: center;
12
-
13
- .pagination {
14
- margin: 0;
15
- }
16
- }
17
-
18
- &__item {
19
- position: relative;
20
- margin-bottom: 15px;
21
-
22
- &--active {
23
- margin-top: 30px;
24
- margin-bottom: 30px;
25
- padding-top: 30px;
26
- padding-bottom: 30px;
27
- border-top: 1px solid $color-gray-light;
28
- border-bottom: 1px solid $color-gray-light;
29
- }
30
-
31
- &:first-child {
32
- margin-top: 0 !important;
33
- padding-top: 0 !important;
34
- border-top: 0 !important;
35
- }
36
-
37
- &:last-child {
38
- margin-bottom: 0 !important;
39
- padding-bottom: 0 !important;
40
- border-bottom: 0 !important;
41
- }
42
-
43
- &__content {
44
- position: relative;
45
-
46
- @media screen and (min-width: 992px) {
47
- display: flex;
48
- }
49
- }
50
-
51
- &__sidebar {
52
- position: sticky;
53
- top: 30px;
54
- }
55
-
56
- [class*="col-"] {
57
- position: static;
58
- }
59
- }
60
- }
@@ -1,83 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { useDispatch, useSelector } from 'react-redux';
3
- import { useTranslation } from "react-i18next";
4
- import classNames from 'classnames';
5
- import { CSSTransition } from "react-transition-group";
6
- import Alert from 'react-bootstrap/lib/Alert';
7
- import { getSummitFormattedDate, getSummitLocation, getTicketRole, getTicketType } from '../../util';
8
- import { cancelOrder } from '../../store/actions/order-actions';
9
- import { getNow } from '../../store/actions/timer-actions';
10
- import { ConfirmPopup, CONFIRM_POPUP_CASE } from '../ConfirmPopup/ConfirmPopup';
11
-
12
- import './order-options.scss';
13
-
14
- export const OrderOptions = ({ order, summit, ticket, className }) => {
15
- const { t } = useTranslation();
16
- const dispatch = useDispatch();
17
- const supportEmail = useSelector(state => state.globalState?.supportEmail || '');
18
- const [showConfirm, setShowConfirm] = useState(false);
19
- const [showRefundSuccess, setShowRefundSuccess] = useState(false);
20
- const now = dispatch(getNow());
21
-
22
- const handleCancelClick = () => setShowConfirm(true);
23
-
24
- const handleConfirmAccept = () => {
25
- dispatch(cancelOrder({ order })).then(() => {
26
- setTimeout(() => setShowRefundSuccess(true), 500);
27
- setTimeout(() => setShowRefundSuccess(false), 5000);
28
- }).catch(() => { });
29
-
30
- setShowConfirm(false);
31
- };
32
-
33
- const handleConfirmReject = () => setShowConfirm(false);
34
-
35
- if (!summit) return null;
36
-
37
- return (
38
- <>
39
- <div className={classNames('order-options', className)}>
40
- <CSSTransition
41
- unmountOnExit
42
- in={showRefundSuccess}
43
- timeout={2000}
44
- classNames="fade-in-out"
45
- >
46
- <>
47
- <br />
48
- <Alert bsStyle="success">
49
- {t("tickets.refund_request_success_message")}
50
- </Alert>
51
- </>
52
- </CSSTransition>
53
-
54
- {
55
-
56
- (summit.registration_allowed_refund_request_till_date ?
57
- summit.registration_allowed_refund_request_till_date > now
58
- :
59
- summit.start_date > now
60
- ) &&
61
- order &&
62
- order?.status === 'Paid' &&
63
- order?.amount > 0 &&
64
- order?.amount > order?.refunded_amount && (
65
- <button onClick={handleCancelClick} className="order-option cancel">
66
- {t("order_info.cancel_order")}
67
- </button>
68
- )}
69
-
70
- <a className="order-option cancel" target="_blank" href={`mailto:${supportEmail}`}>
71
- {t("order_info.email_support")}
72
- </a>
73
- </div>
74
-
75
- <ConfirmPopup
76
- isOpen={showConfirm}
77
- popupCase={CONFIRM_POPUP_CASE.CANCEL_ORDER}
78
- onAccept={handleConfirmAccept}
79
- onReject={handleConfirmReject}
80
- />
81
- </>
82
- );
83
- };
@@ -1,50 +0,0 @@
1
- @import "../../styles/variables";
2
-
3
- .order-info-wrapper,
4
- .order-option {
5
- font-weight: bold;
6
- padding: 15px;
7
- margin-top: 20px;
8
- border: 1px solid $color-gray-light;
9
- }
10
-
11
- .order-info-wrapper {
12
- margin-top: 20px;
13
-
14
- @media (max-width: 768px) {
15
- margin-bottom: 100px;
16
- }
17
-
18
- .info {
19
- font-weight: normal;
20
-
21
- h4 {
22
- font-weight: bold;
23
- }
24
-
25
- .role-badge {
26
- text-transform: uppercase;
27
- }
28
- }
29
-
30
- &:empty {
31
- display: none;
32
- }
33
- }
34
-
35
- .order-option {
36
- display: block;
37
- width: 100%;
38
- text-align: center;
39
- line-height: 2em;
40
- cursor: pointer;
41
- background-color: transparent;
42
-
43
- &:hover {
44
- background-color: $color-gray-lightest;
45
- }
46
-
47
- &.cancel {
48
- color: $color-danger;
49
- }
50
- }
@@ -1,64 +0,0 @@
1
- import React, { useRef, useState } from 'react'
2
- import { useTranslation } from "react-i18next";
3
- import classNames from 'classnames';
4
- import { calculateOrderTotals, getWindowScroll } from '../../util';
5
- import { OrderSummaryTable } from './OrderSummaryTable';
6
-
7
- import './order-summary.scss';
8
-
9
- export const OrderSummary = ({ type = 'desktop', order, summit, tickets, className }) => {
10
- const previousScrollPosition = useRef(getWindowScroll());
11
- const { t } = useTranslation();
12
- const [showTable, setShowTable] = useState(false);
13
- const { amountTotal } = calculateOrderTotals({ order, summit, tickets });
14
-
15
- const isMobile = type === 'mobile';
16
-
17
- // TODO: Determine if we need to finish implementing a separate a `mobile` version of this component.
18
- const toggleTable = () => setShowTable(!showTable);
19
-
20
- const handleToggleClick = () => {
21
- if (!isMobile) return;
22
-
23
- if (!showTable) {
24
- // Update the previousScrollPosition before showing the mobile table.
25
- previousScrollPosition.current = getWindowScroll();
26
- document.body.style.overflow = "hidden";
27
- } else {
28
- document.body.style.overflow = "visible";
29
-
30
- window.scrollTo({
31
- top: previousScrollPosition.current.top
32
- });
33
- }
34
-
35
- toggleTable();
36
- };
37
-
38
- return (
39
- <div className={classNames(
40
- `order-summary order-summary-${type}`,
41
- {
42
- 'open': showTable,
43
- 'closed': !showTable
44
- },
45
- className
46
- )}>
47
- {isMobile && (
48
- <div className="order-summary-mobile-title" onClick={handleToggleClick}>
49
- <span>{t("order_summary.order_summary")}</span>
50
- <span>
51
- {amountTotal} &nbsp; <i className={`fa fa-chevron-${showTable ? 'up' : 'down'}`} aria-hidden="true"></i>
52
- </span>
53
- </div>
54
- )}
55
-
56
- {(!isMobile || showTable) && (
57
- <div className="order-summary-content">
58
- <OrderSummaryTable order={order} summit={summit} tickets={tickets} />
59
- </div>
60
- )}
61
- </div>
62
-
63
- );
64
- };
@@ -1,97 +0,0 @@
1
- import React from 'react';
2
- import { useTranslation } from 'react-i18next';
3
- import { calculateOrderTotals, formatCurrency } from '../../util';
4
-
5
- export const OrderSummaryTable = ({ order, summit, tickets }) => {
6
- const { t } = useTranslation();
7
- const {
8
- discountTotal,
9
- refundTotal,
10
- taxesTotal,
11
- amountTotal,
12
- ticketSummary
13
- } = calculateOrderTotals({ order, summit, tickets });
14
-
15
- return (
16
- <div className="order-summary-table">
17
- <div className="row">
18
- <div className="col-xs-12">
19
- <h4>{t("order_summary.order_summary")}</h4>
20
- </div>
21
- </div>
22
-
23
- {ticketSummary.length > 0 && (
24
- <>
25
- {ticketSummary.map(ticket => {
26
- const ticketTotal = (ticket.qty * (ticket.ticket_type.cost * 100))/100;
27
-
28
- return (
29
- <div className="row order-row" key={`tixorder_${ticket.ticket_type.created}`}>
30
- <div className="col-xs-7">
31
- <span>{ticket.ticket_type.name}</span>
32
- <span>x{ticket.qty}</span>
33
- </div>
34
- <div className="col-xs-5 text-right subtotal">
35
- {formatCurrency(ticketTotal, { currency: order.currency })}
36
- </div>
37
- </div>
38
- )
39
- })}
40
- </>
41
- )}
42
-
43
- {order.discount_amount > 0 && (
44
- <div className="row order-discounts order-row">
45
- <div className="col-xs-7 text-left">
46
- {t("order_summary.discounts")}
47
- </div>
48
- <div className="col-xs-5 text-right subtotal">
49
- -{discountTotal}
50
- </div>
51
- </div>
52
- )}
53
-
54
- {order.taxes_amount > 0 && (
55
- <div className="row order-taxes order-row">
56
- <div className="col-xs-7 text-left">
57
- {t("order_summary.taxes")}
58
- </div>
59
- <div className="col-xs-5 text-right subtotal">
60
- {taxesTotal}
61
- </div>
62
- </div>
63
- )}
64
-
65
- {order.status === 'Paid' && (
66
- <div className="row order-amount-paid order-row amount-paid-row">
67
- <div className="col-xs-7 text-left">
68
- {t("order_summary.amount_paid")}
69
- </div>
70
- <div className="col-xs-5 text-right subtotal">
71
- -{amountTotal}
72
- </div>
73
- </div>
74
- )}
75
-
76
- {refundTotal > 0 && (
77
- <div className="row order-refunds order-row">
78
- <div className="col-xs-7 text-left">
79
- {t("order_summary.refunds")}
80
- </div>
81
- <div className="col-xs-5 text-right subtotal">
82
- {refundTotal}
83
- </div>
84
- </div>
85
- )}
86
-
87
- <div className="row total-row">
88
- <div className="col-xs-6 text-left">
89
- {t("order_summary.total")}
90
- </div>
91
- <div className="col-xs-6 text-right total">
92
- {order.status === 'Paid' ? '$0.00' : amountTotal}
93
- </div>
94
- </div>
95
- </div>
96
- );
97
- };
@@ -1,178 +0,0 @@
1
- @import "../../styles/variables";
2
-
3
- .order-summary-mobile {
4
- // TODO: Use a color variable rather than a hard-coded color
5
- background-color: $color-primary;
6
- color: $color-white;
7
-
8
- &.open {
9
- z-index: 10000;
10
- position: fixed;
11
- top: 0;
12
- left: 0;
13
- height: 100vh;
14
- width: 100vw;
15
- overflow-y: scroll;
16
- }
17
-
18
- &.closed {
19
- border-radius: 0 0 4px 4px;
20
- }
21
-
22
- &-title {
23
- display: flex;
24
- justify-content: space-between;
25
- line-height: 50px;
26
- font-weight: bold;
27
- padding: 0 15px;
28
- cursor: pointer;
29
- }
30
-
31
- &-close-text {
32
- text-align: center;
33
- margin: 15px;
34
- padding: 0 0 15px;
35
- cursor: pointer;
36
- }
37
-
38
- .order-summary-table {
39
- text-align: left;
40
- border: 1px solid $color-gray-light;
41
- padding: 0 15px 15px 15px;
42
- background-color: $color-white;
43
- color: $color-text-dark;
44
- margin: 0 15px 15px;
45
-
46
- h4 {
47
- font-weight: bold;
48
- margin: 15px 0 20px 0;
49
- }
50
-
51
- .order-row {
52
- padding: 10px 0;
53
- margin: 0 5px;
54
- flex-direction: row;
55
-
56
- div:first-child {
57
- margin-right: auto;
58
- display: flex;
59
- justify-content: space-between;
60
- }
61
-
62
- div:last-child {
63
- margin-left: auto;
64
- }
65
- }
66
-
67
- .total-row {
68
- border-top: 1px solid $color-gray-light;
69
- padding: 10px 0;
70
- margin: 0 5px;
71
- flex-direction: row;
72
-
73
- div:first-child {
74
- margin-right: auto;
75
- }
76
-
77
- div:last-child {
78
- margin-left: auto;
79
- }
80
- }
81
-
82
- .order-discounts {
83
- color: $color-success;
84
-
85
- .discount-desc {
86
- font-size: 12px;
87
- margin-bottom: 0;
88
- }
89
- }
90
-
91
- .order-refunds {
92
- color: $color-success;
93
- }
94
-
95
- .subtotal {
96
- font-weight: bold;
97
- }
98
-
99
- .total {
100
- font-weight: bold;
101
- font-size: 16px;
102
- }
103
- }
104
- }
105
-
106
- .order-summary-table {
107
- border: 1px solid $color-gray-light;
108
- padding: 0 15px 15px 15px;
109
-
110
- h4 {
111
- font-weight: bold;
112
- margin: 15px 0 20px 0;
113
- }
114
-
115
- .order-row {
116
- padding: 10px 0;
117
- margin: 0 5px;
118
-
119
- div:first-child {
120
- margin-right: auto;
121
- display: flex;
122
- justify-content: space-between;
123
- }
124
- }
125
-
126
- .total-row {
127
- border-top: 1px solid $color-gray-light;
128
- padding: 10px 0;
129
- margin: 0 5px;
130
- }
131
-
132
- .order-discounts {
133
- color: $color-success;
134
-
135
- .discount-desc {
136
- font-size: 12px;
137
- }
138
- }
139
-
140
- .order-refunds {
141
- color: $color-success;
142
- }
143
-
144
- .order-taxes {
145
- color: $color-danger;
146
- }
147
-
148
- .subtotal {
149
- font-weight: bold;
150
- }
151
-
152
- .total {
153
- font-weight: bold;
154
- font-size: 16px;
155
- }
156
- }
157
-
158
- @media (max-width: 991px) {
159
- .order-summary-mobile {
160
- .order-summary-table {
161
- display: block;
162
- }
163
- }
164
-
165
- .order-summary-table {
166
- display: none;
167
- }
168
- }
169
-
170
- @media (min-width: 992px) {
171
- .order-summary-mobile {
172
- display: none;
173
- }
174
-
175
- .order-summary-mobile-title {
176
- display: none;
177
- }
178
- }
@@ -1,102 +0,0 @@
1
- import React from "react"
2
- import classNames from 'classnames';
3
- import { useTicketDetails } from "../../util";
4
- import { TicketPopup } from "../TicketPopup/TicketPopup";
5
-
6
- import './order-ticket-details.scss';
7
-
8
- export const OrderTicketDetails = ({ ticket, summit, order, className }) => {
9
- const {
10
- status,
11
- role,
12
- isActive,
13
- isUnassigned,
14
- handleClick,
15
- showPopup,
16
- handlePopupClose,
17
- isReassignable
18
- } = useTicketDetails({ ticket, summit });
19
-
20
- return (
21
- <>
22
- <div
23
- className={classNames(
24
- 'order-ticket-details',
25
- `order-ticket-details--${status.className}`,
26
- {
27
- 'disabled': isUnassigned && !isReassignable,
28
- [status.className]: isReassignable,
29
- },
30
- className
31
- )}
32
- onClick={handleClick}
33
- >
34
- <i
35
- className={classNames(
36
- 'order-ticket-details__icon',
37
- status.icon,
38
- `fa fa-2x`
39
- )}
40
- />
41
-
42
- <div className="order-ticket-details__content">
43
- <div className="order-ticket-details__header">
44
- <div>
45
- <h4 className="order-ticket-details__role">
46
- Attendee
47
- </h4>
48
-
49
- {ticket.discount > 0 && (
50
- <div className="order-ticket-details__role">
51
- {((ticket.discount_in_cents / ticket.raw_cost_in_cents)*100).toFixed(0)}% discount
52
- </div>
53
- )}
54
-
55
- <div className="order-ticket-details__status">
56
- {status.text}
57
- </div>
58
- </div>
59
-
60
- <div>
61
- {ticket.owner?.email && (
62
- <h5 className="order-ticket-details__email">
63
- {ticket.owner?.email}
64
- </h5>
65
- )}
66
- </div>
67
- </div>
68
-
69
- <div className="order-ticket-details__meta">
70
- <h5 className="order-ticket-details__number">
71
- {ticket.number}
72
- </h5>
73
- </div>
74
-
75
- {role &&
76
- <div className="order-ticket-details__badge">
77
- <h5 className="order-ticket-details__number">
78
- Badge Features: {role}
79
- </h5>
80
- </div>
81
- }
82
-
83
- </div>
84
-
85
- <div className="order-ticket-details__footer">
86
- {isActive && (
87
- <i className="order-ticket-details__arrow fa fa-angle-right" />
88
- )}
89
- </div>
90
- </div>
91
-
92
- {showPopup && (
93
- <TicketPopup
94
- ticket={ticket}
95
- summit={summit}
96
- order={order}
97
- onClose={handlePopupClose}
98
- />
99
- )}
100
- </>
101
- )
102
- }