@learncard/react 2.4.0 → 2.5.0
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.
- package/dist/cjs/{FlippyCard-2cbe2dbe.js → FlippyCard-209549c5.js} +2 -2
- package/dist/cjs/FlippyCard-209549c5.js.map +1 -0
- package/dist/cjs/{LearnCardCreditCardFrontFace-4452fd7a.js → LearnCardCreditCardFrontFace-4ce0d049.js} +2 -2
- package/dist/cjs/{LearnCardCreditCardFrontFace-4452fd7a.js.map → LearnCardCreditCardFrontFace-4ce0d049.js.map} +1 -1
- package/dist/cjs/{Notification-10b40c07.js → Notification-88cc727a.js} +24 -8
- package/dist/cjs/Notification-88cc727a.js.map +1 -0
- package/dist/cjs/{QRCodeCard-efaa58e1.js → QRCodeCard-b60c0500.js} +2 -2
- package/dist/cjs/{QRCodeCard-efaa58e1.js.map → QRCodeCard-b60c0500.js.map} +1 -1
- package/dist/cjs/SchoolIDCard-1baf77e8.js.map +1 -1
- package/dist/cjs/{VCCard-32c759a8.js → VCCard-9c328aba.js} +3 -3
- package/dist/cjs/{VCCard-32c759a8.js.map → VCCard-9c328aba.js.map} +1 -1
- package/dist/cjs/{VCDisplayBackFace-128b5cb2.js → VCDisplayBackFace-f10d3acc.js} +3 -3
- package/dist/cjs/{VCDisplayBackFace-128b5cb2.js.map → VCDisplayBackFace-f10d3acc.js.map} +1 -1
- package/dist/cjs/{VCDisplayCard-77133b71.js → VCDisplayCard-641cc1de.js} +4 -4
- package/dist/cjs/{VCDisplayCard-77133b71.js.map → VCDisplayCard-641cc1de.js.map} +1 -1
- package/dist/cjs/{VCDisplayCard2-a0a66aa6.js → VCDisplayCard2-ddc332ce.js} +3 -3
- package/dist/cjs/{VCDisplayCard2-a0a66aa6.js.map → VCDisplayCard2-ddc332ce.js.map} +1 -1
- package/dist/cjs/{VCVerificationPill-66e2a90f.js → VCVerificationPill-f322ffef.js} +2 -2
- package/dist/cjs/{VCVerificationPill-66e2a90f.js.map → VCVerificationPill-f322ffef.js.map} +1 -1
- package/dist/cjs/{credential.helpers-7f7b9b02.js → credential.helpers-da5d874e.js} +2 -2
- package/dist/cjs/{credential.helpers-7f7b9b02.js.map → credential.helpers-da5d874e.js.map} +1 -1
- package/dist/cjs/{index-82de573c.js → index-c340a7f0.js} +1 -1
- package/dist/{esm/index-aa1098e1.js.map → cjs/index-c340a7f0.js.map} +1 -1
- package/dist/cjs/index.js +12 -12
- package/dist/cjs/index10.js +12 -12
- package/dist/cjs/index14.js +2 -2
- package/dist/cjs/index18.js +1 -1
- package/dist/cjs/index19.js +2 -2
- package/dist/cjs/index29.js +8 -8
- package/dist/cjs/index30.js +4 -4
- package/dist/cjs/index31.js +6 -6
- package/dist/cjs/index32.js +3 -3
- package/dist/cjs/index33.js +1 -1
- package/dist/cjs/index36.js +2 -2
- package/dist/cjs/index8.js +1 -1
- package/dist/cjs/{types.esm-034454a2.js → types.esm-c09dbd3b.js} +494 -52
- package/dist/cjs/types.esm-c09dbd3b.js.map +1 -0
- package/dist/esm/{FlippyCard-f4f0b3f8.js → FlippyCard-a2de5cf1.js} +2 -2
- package/dist/esm/FlippyCard-a2de5cf1.js.map +1 -0
- package/dist/esm/{LearnCardCreditCardFrontFace-cf793917.js → LearnCardCreditCardFrontFace-c221facc.js} +2 -2
- package/dist/esm/{LearnCardCreditCardFrontFace-cf793917.js.map → LearnCardCreditCardFrontFace-c221facc.js.map} +1 -1
- package/dist/esm/{Notification-ac50790d.js → Notification-75f2b46f.js} +25 -9
- package/dist/esm/Notification-75f2b46f.js.map +1 -0
- package/dist/esm/{QRCodeCard-c57e2067.js → QRCodeCard-d147d009.js} +2 -2
- package/dist/esm/{QRCodeCard-c57e2067.js.map → QRCodeCard-d147d009.js.map} +1 -1
- package/dist/esm/SchoolIDCard-3b746226.js.map +1 -1
- package/dist/esm/{VCCard-c4096573.js → VCCard-ac061e87.js} +3 -3
- package/dist/esm/{VCCard-c4096573.js.map → VCCard-ac061e87.js.map} +1 -1
- package/dist/esm/{VCDisplayBackFace-853b8fdf.js → VCDisplayBackFace-dbf68095.js} +3 -3
- package/dist/esm/{VCDisplayBackFace-853b8fdf.js.map → VCDisplayBackFace-dbf68095.js.map} +1 -1
- package/dist/esm/{VCDisplayCard-be496708.js → VCDisplayCard-ec21dfe8.js} +4 -4
- package/dist/esm/{VCDisplayCard-be496708.js.map → VCDisplayCard-ec21dfe8.js.map} +1 -1
- package/dist/esm/{VCDisplayCard2-c8e96ce8.js → VCDisplayCard2-50e1a81a.js} +3 -3
- package/dist/esm/{VCDisplayCard2-c8e96ce8.js.map → VCDisplayCard2-50e1a81a.js.map} +1 -1
- package/dist/esm/{VCVerificationPill-fc7b53d0.js → VCVerificationPill-9559507a.js} +2 -2
- package/dist/esm/{VCVerificationPill-fc7b53d0.js.map → VCVerificationPill-9559507a.js.map} +1 -1
- package/dist/esm/{credential.helpers-78d3c24a.js → credential.helpers-fbf88b8c.js} +2 -2
- package/dist/esm/{credential.helpers-78d3c24a.js.map → credential.helpers-fbf88b8c.js.map} +1 -1
- package/dist/esm/{index-aa1098e1.js → index-54ccc558.js} +1 -1
- package/dist/esm/index-54ccc558.js.map +1 -0
- package/dist/esm/index.js +12 -12
- package/dist/esm/index10.js +12 -12
- package/dist/esm/index14.js +2 -2
- package/dist/esm/index18.js +1 -1
- package/dist/esm/index19.js +2 -2
- package/dist/esm/index29.js +8 -8
- package/dist/esm/index30.js +4 -4
- package/dist/esm/index31.js +6 -6
- package/dist/esm/index32.js +3 -3
- package/dist/esm/index33.js +1 -1
- package/dist/esm/index36.js +2 -2
- package/dist/esm/index8.js +1 -1
- package/dist/esm/{types.esm-9db3d858.js → types.esm-9b3b15f7.js} +494 -52
- package/dist/esm/types.esm-9b3b15f7.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/package.json +4 -4
- package/dist/cjs/FlippyCard-2cbe2dbe.js.map +0 -1
- package/dist/cjs/Notification-10b40c07.js.map +0 -1
- package/dist/cjs/index-82de573c.js.map +0 -1
- package/dist/cjs/types.esm-034454a2.js.map +0 -1
- package/dist/esm/FlippyCard-f4f0b3f8.js.map +0 -1
- package/dist/esm/Notification-ac50790d.js.map +0 -1
- package/dist/esm/types.esm-9db3d858.js.map +0 -1
|
@@ -6,7 +6,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
6
6
|
|
|
7
7
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
8
8
|
|
|
9
|
-
const FlippyCard = ({ children, flipState }) => {
|
|
9
|
+
const FlippyCard = ({ children, flipState = "front" }) => {
|
|
10
10
|
if ((children == null ? void 0 : children.length) > 3) {
|
|
11
11
|
console.warn("More than two children passed into Flippy Card! \u{1F633}\u{1F633}\u{1F633} Picking first two...");
|
|
12
12
|
}
|
|
@@ -31,4 +31,4 @@ const FlippyCard = ({ children, flipState }) => {
|
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
exports.FlippyCard = FlippyCard;
|
|
34
|
-
//# sourceMappingURL=FlippyCard-
|
|
34
|
+
//# sourceMappingURL=FlippyCard-209549c5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlippyCard-209549c5.js","sources":["../../src/components/FlippyCard/FlippyCard.tsx"],"sourcesContent":["import React from 'react';\n\nexport type FlippyCardProps = {\n children: React.ReactChild[];\n flipState?: 'front' | 'back' | string;\n};\n\nexport const FlippyCard: React.FC<FlippyCardProps> = ({ children, flipState = 'front' }) => {\n if (children?.length > 3) {\n console.warn('More than two children passed into Flippy Card! 😳😳😳 Picking first two...');\n }\n\n if (!children) return <></>;\n\n const frontCard = children?.[0] as React.ReactNode;\n const backCard = (children?.[1] as React.ReactNode) || (children?.[0] as React.ReactNode);\n\n const flipCardCSSClass = flipState === 'front' ? 'flippy-card' : 'flippy-card is-flipped';\n\n return (\n <div data-testid=\"flippy-card-wrapper\" className=\"flippy-wrapper-container\">\n <div data-testid=\"flippy-card\" className={flipCardCSSClass}>\n <section data-testid=\"flippy-card-front\" className=\"card-face card-face--front\">\n {frontCard}\n </section>\n <section data-testid=\"flippy-card-back\" className=\"card-face card-face--back\">\n {backCard}\n </section>\n </div>\n </div>\n );\n};\n\nexport default FlippyCard;\n"],"names":["React"],"mappings":";;;;;;;;AAOO,MAAM,aAAwC,CAAC,EAAE,QAAU,EAAA,SAAA,GAAY,SAAc,KAAA;AACxF,EAAI,IAAA,CAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,UAAS,CAAG,EAAA;AACtB,IAAA,OAAA,CAAQ,KAAK,kGAA6E,CAAA,CAAA;AAAA,GAC9F;AAEA,EAAA,IAAI,CAAC,QAAA;AAAU,IAAA,uBAASA,yBAAA,CAAA,aAAA,CAAAA,yBAAA,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;AAExB,EAAA,MAAM,YAAY,QAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,EAAM,MAAA,QAAA,GAAA,CAAY,QAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,CAAA,CAAA,MAA2B,QAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEnE,EAAM,MAAA,gBAAA,GAAmB,SAAc,KAAA,OAAA,GAAU,aAAgB,GAAA,wBAAA,CAAA;AAEjE,EAAA,uBACKA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,aAAY,EAAA,qBAAA;AAAA,IAAsB,SAAU,EAAA,0BAAA;AAAA,GAAA,kBAC5CA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,aAAY,EAAA,aAAA;AAAA,IAAc,SAAW,EAAA,gBAAA;AAAA,GAAA,kBACrCA,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAA,IAAQ,aAAY,EAAA,mBAAA;AAAA,IAAoB,SAAU,EAAA,4BAAA;AAAA,GAC9C,EAAA,SACL,mBACCA,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAA,IAAQ,aAAY,EAAA,kBAAA;AAAA,IAAmB,SAAU,EAAA,2BAAA;AAAA,GAC7C,EAAA,QACL,CACJ,CACJ,CAAA,CAAA;AAER;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var index = require('./index-
|
|
4
|
+
var index = require('./index-c340a7f0.js');
|
|
5
5
|
var CardChip = require('./card-chip.svg');
|
|
6
6
|
var MasterCardLogo = require('./master-card-logo.svg');
|
|
7
7
|
|
|
@@ -75,4 +75,4 @@ const LearnCardCreditCardFrontFace = ({
|
|
|
75
75
|
};
|
|
76
76
|
|
|
77
77
|
exports.LearnCardCreditCardFrontFace = LearnCardCreditCardFrontFace;
|
|
78
|
-
//# sourceMappingURL=LearnCardCreditCardFrontFace-
|
|
78
|
+
//# sourceMappingURL=LearnCardCreditCardFrontFace-4ce0d049.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LearnCardCreditCardFrontFace-
|
|
1
|
+
{"version":3,"file":"LearnCardCreditCardFrontFace-4ce0d049.js","sources":["../../src/components/LearnCardCreditCardFrontFace/LearnCardCreditCardFrontFace.tsx"],"sourcesContent":["import React from 'react';\nimport { QRCodeSVG } from 'qrcode.react';\n\nimport { LearnCardCreditCardFrontFaceProps } from './types';\n\nimport CardChip from '../../assets/images/card-chip.svg';\nimport MasterCardLogo from '../../assets/images/master-card-logo.svg';\n\nexport const LearnCardCreditCardFrontFace: React.FC<LearnCardCreditCardFrontFaceProps> = ({\n userImage,\n userImageComponent = null,\n qrCodeValue,\n className,\n showActionButton = false,\n actionButtonText = 'Open Card',\n onClick = () => {},\n children,\n}) => {\n let userImageEl: React.ReactNode | null = null;\n\n if (userImage) {\n userImageEl = (\n <div className=\"inline-block relative overflow-hidden rounded-full shadow-3xl h-0 bg-white w-1/2 pb-[50%] mt-2 ml-4\">\n <img\n className=\"w-full h-full absolute rounded-full object-cover border-solid border-2 border-white\"\n src={userImage}\n alt=\"user image\"\n data-testid=\"credit-card-frontface-userImg\"\n />\n </div>\n );\n } else if (!userImage && userImageComponent) {\n userImageEl = userImageComponent;\n }\n\n return (\n <div\n className={`flex justify-center items-center max-w-[375px] rounded-[20px] ${className}`}\n >\n <div\n className={`flex flex-row justify-center items-start pt-9 w-full min-h-[220px] rounded-[20px] shadow-3xl relative overflow-hidden credit-card-front-face`}\n >\n <div className=\"absolute top-[-40px] left-0 w-[55%] h-[140%] rounded-tr-[150px] rounded-br-[150px] bg-grayscale-900 credit-card-bubble\" />\n {showActionButton && (\n <button\n className=\"absolute top-2 right-4 bg-grayscale-500 border-[2px] rounded-3xl border-solid border-color-grayscale-900 min-w-[110px] p-[2px] font-bold text-xs tracking-wide leading-snug text-center text-white\"\n onClick={onClick}\n data-testid=\"credit-card-frontface-button\"\n >\n {actionButtonText}\n </button>\n )}\n <div className=\"flex flex-row justify-between items-start w-full h-full relative\">\n <div className=\"flex flex-1 flex-col\">\n <div className=\"pl-8\">\n <p className=\"w-full text-xs text-white font-bold tracking-[7px] mb-2 credit-card-front-face-title\">\n LEARNCARD\n </p>\n <img\n src={CardChip ?? ''}\n alt=\"card chip\"\n className=\"h-[30px] w-[42px]\"\n />\n </div>\n\n {userImageEl}\n </div>\n\n {qrCodeValue && (\n <div className=\"flex flex-1 justify-center items-center relative pl-10 credit-card-qr-code-container\">\n <div className=\"h-auto relative qr-code-container\">\n {/* <div className=\"qr-code-upper-left-yellow\" />\n <div className=\"qr-code-upper-right-pink-square\" />\n <div className=\"qr-code-bottom-left-purple-square\" />\n <div className=\"qr-code-green-blob\" />\n <div className=\"qr-code-green-blob-2\" />\n <div className=\"qr-code-blue-blob\" />\n <div className=\"qr-code-orange-blob\" /> */}\n <QRCodeSVG\n className=\"h-full w-full\"\n value={qrCodeValue}\n data-testid=\"credit-card-qr-code\"\n bgColor=\"transparent\"\n // fgColor=\"#999999\"\n />\n </div>\n </div>\n )}\n\n <img\n src={MasterCardLogo ?? ''}\n alt=\"mastercard icon\"\n className=\"absolute bottom-[-8px] right-4 learn-card-mastercard-logo\"\n />\n </div>\n </div>\n {children}\n </div>\n );\n};\n\nexport default LearnCardCreditCardFrontFace;\n"],"names":["React","CardChip","QRCodeSVG","MasterCardLogo"],"mappings":"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"}
|
|
@@ -75,11 +75,21 @@ const Notification = ({
|
|
|
75
75
|
issueDate,
|
|
76
76
|
className,
|
|
77
77
|
notificationType = NotificationTypeEnum.Achievement,
|
|
78
|
-
|
|
79
|
-
}
|
|
78
|
+
handleViewOnClick = () => {
|
|
79
|
+
},
|
|
80
|
+
claimStatus = false,
|
|
81
|
+
handleClaimOnClick = () => {
|
|
82
|
+
},
|
|
83
|
+
loadingState = false
|
|
80
84
|
}) => {
|
|
81
|
-
const [isClaimed, setIsClaimed] = React.useState(false);
|
|
82
|
-
const
|
|
85
|
+
const [isClaimed, setIsClaimed] = React.useState(claimStatus || false);
|
|
86
|
+
const [isLoading, setIsLoading] = React.useState(loadingState || false);
|
|
87
|
+
React.useEffect(() => {
|
|
88
|
+
setIsClaimed(claimStatus);
|
|
89
|
+
}, [claimStatus]);
|
|
90
|
+
React.useEffect(() => {
|
|
91
|
+
setIsLoading(loadingState);
|
|
92
|
+
}, [loadingState]);
|
|
83
93
|
const {
|
|
84
94
|
IconComponent,
|
|
85
95
|
iconCircleStyles,
|
|
@@ -89,6 +99,12 @@ const Notification = ({
|
|
|
89
99
|
unclaimedButtonStyles
|
|
90
100
|
} = NotificationTypeStyles[notificationType];
|
|
91
101
|
const claimButtonStyles = isClaimed ? claimedButtonStyles : unclaimedButtonStyles;
|
|
102
|
+
let buttonText = "";
|
|
103
|
+
if (isClaimed) {
|
|
104
|
+
buttonText = "Claimed";
|
|
105
|
+
} else if (!isClaimed) {
|
|
106
|
+
buttonText = "Claim";
|
|
107
|
+
}
|
|
92
108
|
return /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
93
109
|
className: `flex justify-center items-center relative w-full rounded-3xl shadow-2xl py-3 bg-white ${className}`
|
|
94
110
|
}, /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
@@ -119,20 +135,20 @@ const Notification = ({
|
|
|
119
135
|
}, "\u2022 ", issueDate)))), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
120
136
|
className: "flex items-center justify-between w-full mt-3"
|
|
121
137
|
}, /* @__PURE__ */ React__default["default"].createElement("button", {
|
|
122
|
-
onClick,
|
|
138
|
+
onClick: handleViewOnClick,
|
|
123
139
|
className: `flex-1 rounded-[24px] border-solid border-2 bg-white font-semibold mr-2 py-2 px-3 tracking-wide ${viewButtonStyles}`,
|
|
124
140
|
role: "button",
|
|
125
141
|
name: "notification-view-button"
|
|
126
142
|
}, "View"), /* @__PURE__ */ React__default["default"].createElement("button", {
|
|
127
143
|
className: `flex items-center justify-center flex-1 rounded-[24px] border-2 border-solid font-semibold py-2 px-3 tracking-wide ${claimButtonStyles}`,
|
|
128
|
-
onClick:
|
|
144
|
+
onClick: handleClaimOnClick,
|
|
129
145
|
role: "button",
|
|
130
146
|
name: "notification-claim-button"
|
|
131
147
|
}, isClaimed && /* @__PURE__ */ React__default["default"].createElement(User.Checkmark, {
|
|
132
148
|
className: "h-[24px] p-0 m-0"
|
|
133
|
-
}), " ",
|
|
149
|
+
}), " ", isLoading ? "Loading..." : buttonText))));
|
|
134
150
|
};
|
|
135
151
|
|
|
136
152
|
exports.Notification = Notification;
|
|
137
153
|
exports.NotificationTypeStyles = NotificationTypeStyles;
|
|
138
|
-
//# sourceMappingURL=Notification-
|
|
154
|
+
//# sourceMappingURL=Notification-88cc727a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Notification-88cc727a.js","sources":["../../src/constants/notifications.ts","../../src/components/Notification/types.ts","../../src/components/Notification/Notification.tsx"],"sourcesContent":["export enum NotificationTypeEnum {\n Currency = 'currency',\n ID = 'id',\n Achievement = 'achievement',\n Skill = 'skill',\n Job = 'job',\n Learning = 'learning',\n}\n","import { NotificationTypeEnum } from '../../constants/notifications';\n\nimport Trophy from '../svgs/Trophy';\nimport Coins from '../svgs/Coins';\nimport User from '../svgs/User';\nimport Briefcase from '../svgs/Briefcase';\nimport Lightbulb from '../svgs/Lightbulb';\nimport Graduation from '../svgs/Graduation';\n\nexport type NotificationProps = {\n notificationType: NotificationTypeEnum;\n title: string;\n issuerImage?: string;\n issueDate: string;\n className?: string;\n handleViewOnClick: () => void;\n claimStatus: boolean;\n handleClaimOnClick: () => void;\n loadingState: boolean;\n};\n\nexport const NotificationTypeStyles = {\n [NotificationTypeEnum.Currency]: {\n viewButtonStyles: 'border-cyan-600 text-cyan-600',\n unclaimedButtonStyles: 'text-white bg-cyan-600 border-cyan-600',\n claimedButtonStyles: 'text-cyan-600 bg-cyan-50 border-cyan-50',\n textStyles: 'text-cyan-600 capitalize',\n iconCircleStyles: 'bg-cyan-600',\n IconComponent: Coins,\n },\n [NotificationTypeEnum.ID]: {\n viewButtonStyles: 'border-yellow-400 text-yellow-400',\n unclaimedButtonStyles: 'text-white bg-yellow-400 border-yellow-400',\n claimedButtonStyles: 'text-yellow-400 bg-yellow-50 border-yellow-50',\n textStyles: 'text-yellow-400 uppercase',\n iconCircleStyles: 'bg-yellow-400',\n IconComponent: User,\n },\n [NotificationTypeEnum.Achievement]: {\n viewButtonStyles: 'border-spice-400 text-spice-400',\n unclaimedButtonStyles: 'text-white bg-spice-400 border-spice-400',\n claimedButtonStyles: 'text-spice-400 bg-spice-50 border-spice-50',\n textStyles: 'text-spice-400 capitalize',\n iconCircleStyles: 'bg-spice-400',\n IconComponent: Trophy,\n },\n [NotificationTypeEnum.Skill]: {\n viewButtonStyles: 'border-indigo-400 text-indigo-400',\n unclaimedButtonStyles: 'text-white bg-indigo-400 border-indigo-400',\n claimedButtonStyles: 'text-indigo-400 bg-indigo-50 border-indigo-50',\n textStyles: 'text-indigo-400 capitalize',\n iconCircleStyles: 'bg-indigo-400',\n IconComponent: Lightbulb,\n },\n [NotificationTypeEnum.Job]: {\n viewButtonStyles: 'border-emerald-400 text-emerald-400',\n unclaimedButtonStyles: 'text-white bg-emerald-400 border-emerald-400',\n claimedButtonStyles: 'text-emerald-400 bg-emerald-50 border-emerald-50',\n textStyles: 'text-emerald-400 capitalize',\n iconCircleStyles: 'bg-emerald-400',\n IconComponent: Briefcase,\n },\n [NotificationTypeEnum.Learning]: {\n viewButtonStyles: 'border-rose-400 text-rose-400',\n unclaimedButtonStyles: 'text-white bg-rose-400 border-rose-400',\n claimedButtonStyles: 'text-rose-400 bg-rose-50 border-rose-50',\n textStyles: 'text-rose-400 capitalize',\n iconCircleStyles: 'bg-rose-400',\n IconComponent: Graduation,\n },\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { NotificationProps, NotificationTypeStyles } from './types';\nimport { NotificationTypeEnum } from '../../constants/notifications';\n\nimport Checkmark from '../svgs/Checkmark';\n\nexport const Notification: React.FC<NotificationProps> = ({\n title,\n issuerImage,\n issueDate,\n className,\n notificationType = NotificationTypeEnum.Achievement,\n handleViewOnClick = () => {},\n claimStatus = false,\n handleClaimOnClick = () => {},\n loadingState = false,\n}) => {\n const [isClaimed, setIsClaimed] = useState<boolean>(claimStatus || false);\n const [isLoading, setIsLoading] = useState<boolean>(loadingState || false);\n\n useEffect(() => {\n setIsClaimed(claimStatus);\n }, [claimStatus]);\n\n useEffect(() => {\n setIsLoading(loadingState);\n }, [loadingState]);\n\n const {\n IconComponent,\n iconCircleStyles,\n textStyles,\n viewButtonStyles,\n claimedButtonStyles,\n unclaimedButtonStyles,\n } = NotificationTypeStyles[notificationType];\n\n const claimButtonStyles = isClaimed ? claimedButtonStyles : unclaimedButtonStyles;\n\n let buttonText: string = '';\n\n if (isClaimed) {\n buttonText = 'Claimed';\n } else if (!isClaimed) {\n buttonText = 'Claim';\n }\n\n return (\n <div\n className={`flex justify-center items-center relative w-full rounded-3xl shadow-2xl py-3 bg-white ${className}`}\n >\n <div\n className={`absolute flex items-center justify-center top-2 right-2 h-8 w-8 overflow-hidden rounded-full z-10 ${iconCircleStyles}`}\n >\n <IconComponent className=\"h-4/5 text-white\" />\n </div>\n <div className=\"flex flex-col justify-center items-center relative w-11/12\">\n <div className=\"flex flex-row items-center justify-start w-full\">\n <div className=\"h-12 w-12 max-h-12 max-w-[48px] min-h-[48px] min-w-[48px] overflow-hidden rounded-full\">\n <img\n src={issuerImage}\n alt=\"issuer image\"\n className=\"w-full h-full object-cover\"\n />\n </div>\n <div className=\"text-left ml-3\">\n <h4\n className=\"font-bold tracking-wide line-clamp-1 text-black\"\n data-testid=\"notification-title\"\n >\n {title}\n </h4>\n <p\n className={`font-semibold p-0 m-0 leading-none tracking-wide line-clamp-1 ${textStyles}`}\n data-testid=\"notification-type\"\n >\n {notificationType}{' '}\n <span\n className=\"text-grayscale-600 normal-case font-normal text-sm\"\n data-testid=\"notification-cred-issue-date\"\n >\n • {issueDate}\n </span>\n </p>\n </div>\n </div>\n <div className=\"flex items-center justify-between w-full mt-3\">\n <button\n onClick={handleViewOnClick}\n className={`flex-1 rounded-[24px] border-solid border-2 bg-white font-semibold mr-2 py-2 px-3 tracking-wide ${viewButtonStyles}`}\n role=\"button\"\n name=\"notification-view-button\"\n >\n View\n </button>\n <button\n className={`flex items-center justify-center flex-1 rounded-[24px] border-2 border-solid font-semibold py-2 px-3 tracking-wide ${claimButtonStyles}`}\n onClick={handleClaimOnClick}\n role=\"button\"\n name=\"notification-claim-button\"\n >\n {isClaimed && <Checkmark className=\"h-[24px] p-0 m-0\" />}{' '}\n {isLoading ? 'Loading...' : buttonText}\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Notification;\n"],"names":["NotificationTypeEnum","Coins","User","Trophy","Lightbulb","Briefcase","Graduation","useState","useEffect","React","Checkmark"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var index = require('./index-
|
|
4
|
+
var index = require('./index-c340a7f0.js');
|
|
5
5
|
|
|
6
6
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
7
7
|
|
|
@@ -39,4 +39,4 @@ const QRCodeCard = ({
|
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
exports.QRCodeCard = QRCodeCard;
|
|
42
|
-
//# sourceMappingURL=QRCodeCard-
|
|
42
|
+
//# sourceMappingURL=QRCodeCard-b60c0500.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QRCodeCard-
|
|
1
|
+
{"version":3,"file":"QRCodeCard-b60c0500.js","sources":["../../src/components/QRCodeCard/QRCodeCard.tsx"],"sourcesContent":["import React from 'react';\nimport { QRCodeSVG } from 'qrcode.react';\n\nimport { QRCodeCardProps } from './types';\n\nexport const QRCodeCard: React.FC<QRCodeCardProps> = ({\n userHandle,\n qrCodeValue,\n className,\n text = null,\n}) => {\n let textEl: React.ReactNode | null = null;\n if (typeof text === 'string') {\n textEl = (\n <p className=\"flex items-center justify-center w-full text-xl text-black font-bold tracking-[9px]\">\n {text}\n </p>\n );\n } else {\n textEl = text;\n }\n\n return (\n <div\n className={`flex flex-col justify-center items-start pt-9 rounded-[20px] shadow-3xl max-w-[400px] bg-white relative pb-8 overflow-hidden ${className}`}\n >\n {qrCodeValue && (\n <div className=\"flex justify-center items-center w-full relative px-8 mb-5\">\n <div className=\"max-w-[90%] w-full h-auto relative\">\n <QRCodeSVG\n className=\"h-full w-full\"\n value={qrCodeValue}\n data-testid=\"qrcode-card\"\n bgColor=\"transparent\"\n />\n </div>\n </div>\n )}\n\n {userHandle && (\n <p\n className=\"flex items-center justify-center text-center w-full mb-3 font-semibold text-lg text-gray-500\"\n data-testid=\"qrcode-card-user-handle\"\n >\n {userHandle}\n </p>\n )}\n\n {textEl}\n </div>\n );\n};\n\nexport default QRCodeCard;\n"],"names":["React","QRCodeSVG"],"mappings":";;;;;;;;;AAKO,MAAM,aAAwC,CAAC;AAAA,EAClD,UAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAO,GAAA,IAAA;AACX,CAAM,KAAA;AACF,EAAA,IAAI,MAAiC,GAAA,IAAA,CAAA;AACrC,EAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC1B,IAAA,MAAA,mBACKA,yBAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AAAA,MAAE,SAAU,EAAA,qFAAA;AAAA,KAAA,EACR,IACL,CAAA,CAAA;AAAA,GAED,MAAA;AACH,IAAS,MAAA,GAAA,IAAA,CAAA;AAAA,GACb;AAEA,EAAA,uBACKA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IACG,WAAW,CAAgI,6HAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA,EAE1I,+BACIA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAU,EAAA,4DAAA;AAAA,GAAA,kBACVA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAU,EAAA,oCAAA;AAAA,GAAA,kBACVA,yBAAA,CAAA,aAAA,CAAAC,eAAA,EAAA;AAAA,IACG,SAAU,EAAA,eAAA;AAAA,IACV,KAAO,EAAA,WAAA;AAAA,IACP,aAAY,EAAA,aAAA;AAAA,IACZ,OAAQ,EAAA,aAAA;AAAA,GACZ,CACJ,CACJ,CAGH,EAAA,UAAA,oBACID,yBAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AAAA,IACG,SAAU,EAAA,8FAAA;AAAA,IACV,aAAY,EAAA,yBAAA;AAAA,GAEX,EAAA,UACL,GAGH,MACL,CAAA,CAAA;AAER;;;;"}
|