@samsheena/payment-ui 1.0.5 → 1.0.6

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/index.cjs.js CHANGED
@@ -95,10 +95,10 @@ function PaymentModal({
95
95
  }, PLAN_LIST.map(p => {
96
96
  const disabled = !p.enabled;
97
97
  const selected = p.key === planKey;
98
- function pickPlan() {
98
+ const pickPlan = () => {
99
99
  if (disabled) return;
100
100
  setPlanKey(p.key);
101
- }
101
+ };
102
102
  return /*#__PURE__*/React.createElement("div", {
103
103
  key: p.key,
104
104
  className: ["glh-pay-plan", disabled ? "glh-pay-planDisabled" : "", selected ? "glh-pay-selected" : ""].join(" "),
@@ -106,7 +106,10 @@ function PaymentModal({
106
106
  role: "button",
107
107
  tabIndex: disabled ? -1 : 0,
108
108
  "aria-disabled": disabled,
109
- "aria-pressed": selected
109
+ "aria-pressed": selected,
110
+ onKeyDown: e => {
111
+ if ((e.key === "Enter" || e.key === " ") && !disabled) pickPlan();
112
+ }
110
113
  }, /*#__PURE__*/React.createElement("div", {
111
114
  style: {
112
115
  display: "grid",
@@ -126,13 +129,11 @@ function PaymentModal({
126
129
  display: "flex",
127
130
  gap: 8
128
131
  }
129
- }, p.enabled ? /*#__PURE__*/React.createElement("span", {
132
+ }, /*#__PURE__*/React.createElement("span", {
130
133
  className: "glh-pay-pill"
131
- }, "ENABLED") : /*#__PURE__*/React.createElement("span", {
134
+ }, p.enabled ? "ENABLED" : "DISABLED"), selected ? /*#__PURE__*/React.createElement("span", {
132
135
  className: "glh-pay-pill"
133
- }, "DISABLED"), selected && /*#__PURE__*/React.createElement("span", {
134
- className: "glh-pay-pill"
135
- }, "SELECTED")));
136
+ }, "SELECTED") : null));
136
137
  })), /*#__PURE__*/React.createElement("div", {
137
138
  className: "glh-pay-summary"
138
139
  }, /*#__PURE__*/React.createElement("div", {
@@ -162,7 +163,10 @@ function PaymentModal({
162
163
  marginBottom: 8
163
164
  }
164
165
  }, "\u2705 Account Created"), /*#__PURE__*/React.createElement("div", {
165
- className: "glh-pay-summary"
166
+ className: "glh-pay-summary",
167
+ style: {
168
+ marginTop: 14
169
+ }
166
170
  }, /*#__PURE__*/React.createElement("div", {
167
171
  className: "glh-pay-line"
168
172
  }, /*#__PURE__*/React.createElement("span", null, "Selected Plan"), /*#__PURE__*/React.createElement("span", {
@@ -197,28 +201,33 @@ function PaymentModal({
197
201
 
198
202
  /**
199
203
  * AccountButton
200
- * - Place this component in the CENTER area of your navbar.
201
- * - It renders a button and a modal for account creation + subscription summary.
204
+ * - Navbar center ನಲ್ಲಿ place ಮಾಡಬಹುದು
205
+ * - localStorage ನಲ್ಲಿ glh_payment_account ಇದ್ದರೆ button "Subscribed ✓" ಆಗಿ show ಆಗುತ್ತದೆ
202
206
  */
203
207
  function AccountButton({
204
208
  buttonText = "Account",
209
+ subscribedText = "Subscribed ✓",
205
210
  wrapperClassName = "",
206
211
  buttonClassName = "",
207
212
  onAccountCreated
208
213
  }) {
209
214
  const [open, setOpen] = React.useState(false);
210
215
  const [hasAccount, setHasAccount] = React.useState(false);
211
- React.useEffect(() => {
216
+ function readAccountFlag() {
212
217
  try {
213
218
  const saved = localStorage.getItem("glh_payment_account");
214
- setHasAccount(!!saved);
219
+ return !!saved;
215
220
  } catch (e) {
216
- setHasAccount(false);
221
+ return false;
217
222
  }
218
- }, [open]);
223
+ }
224
+ React.useEffect(() => {
225
+ setHasAccount(readAccountFlag());
226
+ }, []);
219
227
  function handleClose() {
220
228
  setOpen(false);
221
- // refresh state after close
229
+
230
+ // close ಆದಮೇಲೆ storage re-check ಮಾಡಿ button text update
222
231
  try {
223
232
  const saved = localStorage.getItem("glh_payment_account");
224
233
  const ok = !!saved;
@@ -230,13 +239,14 @@ function AccountButton({
230
239
  // ignore
231
240
  }
232
241
  }
242
+ const label = hasAccount ? subscribedText : buttonText;
233
243
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
234
244
  className: `glh-pay-centerWrap ${wrapperClassName}`
235
245
  }, /*#__PURE__*/React.createElement("button", {
236
246
  className: `glh-pay-btn ${buttonClassName}`,
237
247
  onClick: () => setOpen(true),
238
248
  type: "button"
239
- }, hasAccount ? `${buttonText} ✓` : buttonText)), /*#__PURE__*/React.createElement(PaymentModal, {
249
+ }, label)), /*#__PURE__*/React.createElement(PaymentModal, {
240
250
  open: open,
241
251
  onClose: handleClose
242
252
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/components/PaymentModal.jsx","../src/components/AccountButton.jsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport \"./styles.css\";\r\n\r\nconst PRICE_PER_MONTH = 5;\r\n\r\nconst PLAN_LIST = [\r\n { key: \"monthly\", label: \"Monthly\", months: 1, enabled: false },\r\n { key: \"3m\", label: \"3 Months\", months: 3, enabled: false },\r\n { key: \"6m\", label: \"6 Months\", months: 6, enabled: true }, // Only enabled\r\n { key: \"1y\", label: \"Yearly\", months: 12, enabled: false },\r\n { key: \"3y\", label: \"3 Years\", months: 36, enabled: false }\r\n];\r\n\r\nexport function PaymentModal({ open, onClose }) {\r\n const defaultPlanKey = \"6m\";\r\n\r\n const [planKey, setPlanKey] = useState(defaultPlanKey);\r\n const [accountCreated, setAccountCreated] = useState(false);\r\n\r\n const selectedPlan = useMemo(() => {\r\n return PLAN_LIST.find((p) => p.key === planKey) || PLAN_LIST[2];\r\n }, [planKey]);\r\n\r\n const total = selectedPlan.months * PRICE_PER_MONTH;\r\n const discountPercent = 100;\r\n const discountAmount = total;\r\n const netPayable = 0;\r\n\r\n function handleBackdropClick(e) {\r\n if (e.target?.classList?.contains(\"glh-pay-backdrop\")) onClose?.();\r\n }\r\n\r\n function createAccountAndSubscribe() {\r\n const payload = {\r\n createdAt: new Date().toISOString(),\r\n plan: selectedPlan,\r\n pricePerMonth: PRICE_PER_MONTH,\r\n total,\r\n discountPercent,\r\n discountAmount,\r\n netPayable\r\n };\r\n\r\n try {\r\n localStorage.setItem(\"glh_payment_account\", JSON.stringify(payload));\r\n setAccountCreated(true);\r\n } catch (err) {\r\n setAccountCreated(true);\r\n }\r\n }\r\n\r\n if (!open) return null;\r\n\r\n return createPortal(\r\n <div\r\n className=\"glh-pay-backdrop\"\r\n onMouseDown={handleBackdropClick}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n >\r\n <div\r\n className=\"glh-pay-modal\"\r\n onMouseDown={(e) => e.stopPropagation()}\r\n >\r\n <div className=\"glh-pay-header\">\r\n <h3 className=\"glh-pay-title\">Create Payment Account</h3>\r\n <button\r\n className=\"glh-pay-close\"\r\n onClick={onClose}\r\n aria-label=\"Close\"\r\n >\r\n ✕\r\n </button>\r\n </div>\r\n\r\n <div className=\"glh-pay-body\">\r\n {!accountCreated ? (\r\n <>\r\n <div\r\n className=\"glh-pay-label\"\r\n style={{ marginBottom: 8 }}\r\n >\r\n Subscription Plans (₹{PRICE_PER_MONTH} / month)\r\n </div>\r\n\r\n <div className=\"glh-pay-plans\">\r\n {PLAN_LIST.map((p) => {\r\n const disabled = !p.enabled;\r\n const selected = p.key === planKey;\r\n\r\n function pickPlan() {\r\n if (disabled) return;\r\n setPlanKey(p.key);\r\n }\r\n\r\n return (\r\n <div\r\n key={p.key}\r\n className={[\r\n \"glh-pay-plan\",\r\n disabled ? \"glh-pay-planDisabled\" : \"\",\r\n selected ? \"glh-pay-selected\" : \"\"\r\n ].join(\" \")}\r\n onClick={pickPlan}\r\n role=\"button\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-disabled={disabled}\r\n aria-pressed={selected}\r\n >\r\n <div style={{ display: \"grid\", gap: 4 }}>\r\n <div style={{ fontWeight: 900 }}>\r\n {p.label}\r\n </div>\r\n <div\r\n style={{\r\n fontSize: 12,\r\n color: \"rgba(0,0,0,0.65)\"\r\n }}\r\n >\r\n Duration: {p.months} month(s)\r\n </div>\r\n </div>\r\n\r\n <div style={{ display: \"flex\", gap: 8 }}>\r\n {p.enabled ? (\r\n <span className=\"glh-pay-pill\">\r\n ENABLED\r\n </span>\r\n ) : (\r\n <span className=\"glh-pay-pill\">\r\n DISABLED\r\n </span>\r\n )}\r\n {selected && (\r\n <span className=\"glh-pay-pill\">\r\n SELECTED\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n\r\n <div className=\"glh-pay-summary\">\r\n <div className=\"glh-pay-line\">\r\n <span>\r\n Total ({selectedPlan.months} × ₹{PRICE_PER_MONTH})\r\n </span>\r\n <span className=\"glh-pay-strong\">\r\n ₹{total}\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Discount</span>\r\n <span className=\"glh-pay-strong\">\r\n {discountPercent}% (-₹{discountAmount})\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span className=\"glh-pay-strong\">\r\n Net Payable\r\n </span>\r\n <span className=\"glh-pay-strong\">\r\n ₹{netPayable}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"glh-pay-note\">\r\n Note: This package is frontend-only.\r\n Payment is always ₹0 because 100% discount is applied.\r\n </div>\r\n </>\r\n ) : (\r\n <div style={{ padding: 6 }}>\r\n <div\r\n style={{\r\n fontWeight: 900,\r\n fontSize: 16,\r\n marginBottom: 8\r\n }}\r\n >\r\n ✅ Account Created\r\n </div>\r\n\r\n <div className=\"glh-pay-summary\">\r\n <div className=\"glh-pay-line\">\r\n <span>Selected Plan</span>\r\n <span className=\"glh-pay-strong\">\r\n {selectedPlan.label}\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Total</span>\r\n <span className=\"glh-pay-strong\">\r\n ₹{total}\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Discount</span>\r\n <span className=\"glh-pay-strong\">\r\n 100% (-₹{total})\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span className=\"glh-pay-strong\">\r\n Net Payable\r\n </span>\r\n <span className=\"glh-pay-strong\">\r\n ₹0\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <div className=\"glh-pay-footer\">\r\n {!accountCreated ? (\r\n <>\r\n <button\r\n className=\"glh-pay-secondary\"\r\n onClick={onClose}\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n className=\"glh-pay-primary\"\r\n onClick={createAccountAndSubscribe}\r\n >\r\n Create Account\r\n </button>\r\n </>\r\n ) : (\r\n <button\r\n className=\"glh-pay-primary\"\r\n onClick={onClose}\r\n >\r\n Done\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n document.body\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { PaymentModal } from \"./PaymentModal.jsx\";\r\nimport \"./styles.css\";\r\n\r\n/**\r\n * AccountButton\r\n * - Place this component in the CENTER area of your navbar.\r\n * - It renders a button and a modal for account creation + subscription summary.\r\n */\r\nexport function AccountButton({\r\n buttonText = \"Account\",\r\n wrapperClassName = \"\",\r\n buttonClassName = \"\",\r\n onAccountCreated\r\n}) {\r\n const [open, setOpen] = useState(false);\r\n const [hasAccount, setHasAccount] = useState(false);\r\n\r\n useEffect(() => {\r\n try {\r\n const saved = localStorage.getItem(\"glh_payment_account\");\r\n setHasAccount(!!saved);\r\n } catch (e) {\r\n setHasAccount(false);\r\n }\r\n }, [open]);\r\n\r\n function handleClose() {\r\n setOpen(false);\r\n // refresh state after close\r\n try {\r\n const saved = localStorage.getItem(\"glh_payment_account\");\r\n const ok = !!saved;\r\n setHasAccount(ok);\r\n if (ok && typeof onAccountCreated === \"function\") {\r\n onAccountCreated(JSON.parse(saved));\r\n }\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <div className={`glh-pay-centerWrap ${wrapperClassName}`}>\r\n <button\r\n className={`glh-pay-btn ${buttonClassName}`}\r\n onClick={() => setOpen(true)}\r\n type=\"button\"\r\n >\r\n {hasAccount ? `${buttonText} ✓` : buttonText}\r\n </button>\r\n </div>\r\n\r\n <PaymentModal open={open} onClose={handleClose} />\r\n </>\r\n );\r\n}\r\n"],"names":["PRICE_PER_MONTH","PLAN_LIST","key","label","months","enabled","PaymentModal","open","onClose","defaultPlanKey","planKey","setPlanKey","useState","accountCreated","setAccountCreated","selectedPlan","useMemo","find","p","total","discountPercent","discountAmount","netPayable","handleBackdropClick","e","target","classList","contains","createAccountAndSubscribe","payload","createdAt","Date","toISOString","plan","pricePerMonth","localStorage","setItem","JSON","stringify","err","createPortal","React","createElement","className","onMouseDown","role","stopPropagation","onClick","Fragment","style","marginBottom","map","disabled","selected","pickPlan","join","tabIndex","display","gap","fontWeight","fontSize","color","padding","document","body","AccountButton","buttonText","wrapperClassName","buttonClassName","onAccountCreated","setOpen","hasAccount","setHasAccount","useEffect","saved","getItem","handleClose","ok","parse","type"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/components/PaymentModal.jsx","../src/components/AccountButton.jsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport \"./styles.css\";\r\n\r\nconst PRICE_PER_MONTH = 5;\r\n\r\nconst PLAN_LIST = [\r\n { key: \"monthly\", label: \"Monthly\", months: 1, enabled: false },\r\n { key: \"3m\", label: \"3 Months\", months: 3, enabled: false },\r\n { key: \"6m\", label: \"6 Months\", months: 6, enabled: true }, // Only enabled\r\n { key: \"1y\", label: \"Yearly\", months: 12, enabled: false },\r\n { key: \"3y\", label: \"3 Years\", months: 36, enabled: false }\r\n];\r\n\r\nexport function PaymentModal({ open, onClose }) {\r\n const defaultPlanKey = \"6m\";\r\n const [planKey, setPlanKey] = useState(defaultPlanKey);\r\n const [accountCreated, setAccountCreated] = useState(false);\r\n\r\n const selectedPlan = useMemo(() => {\r\n return PLAN_LIST.find((p) => p.key === planKey) || PLAN_LIST[2];\r\n }, [planKey]);\r\n\r\n const total = selectedPlan.months * PRICE_PER_MONTH;\r\n const discountPercent = 100;\r\n const discountAmount = total;\r\n const netPayable = 0;\r\n\r\n function handleBackdropClick(e) {\r\n if (e.target?.classList?.contains(\"glh-pay-backdrop\")) onClose?.();\r\n }\r\n\r\n function createAccountAndSubscribe() {\r\n const payload = {\r\n createdAt: new Date().toISOString(),\r\n plan: selectedPlan,\r\n pricePerMonth: PRICE_PER_MONTH,\r\n total,\r\n discountPercent,\r\n discountAmount,\r\n netPayable\r\n };\r\n\r\n try {\r\n localStorage.setItem(\"glh_payment_account\", JSON.stringify(payload));\r\n setAccountCreated(true);\r\n } catch (err) {\r\n setAccountCreated(true);\r\n }\r\n }\r\n\r\n if (!open) return null;\r\n\r\n return createPortal(\r\n <div\r\n className=\"glh-pay-backdrop\"\r\n onMouseDown={handleBackdropClick}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n >\r\n <div className=\"glh-pay-modal\" onMouseDown={(e) => e.stopPropagation()}>\r\n <div className=\"glh-pay-header\">\r\n <h3 className=\"glh-pay-title\">Create Payment Account</h3>\r\n <button className=\"glh-pay-close\" onClick={onClose} aria-label=\"Close\">\r\n ✕\r\n </button>\r\n </div>\r\n\r\n <div className=\"glh-pay-body\">\r\n {!accountCreated ? (\r\n <>\r\n <div className=\"glh-pay-label\" style={{ marginBottom: 8 }}>\r\n Subscription Plans (₹{PRICE_PER_MONTH} / month)\r\n </div>\r\n\r\n <div className=\"glh-pay-plans\">\r\n {PLAN_LIST.map((p) => {\r\n const disabled = !p.enabled;\r\n const selected = p.key === planKey;\r\n\r\n const pickPlan = () => {\r\n if (disabled) return;\r\n setPlanKey(p.key);\r\n };\r\n\r\n return (\r\n <div\r\n key={p.key}\r\n className={[\r\n \"glh-pay-plan\",\r\n disabled ? \"glh-pay-planDisabled\" : \"\",\r\n selected ? \"glh-pay-selected\" : \"\"\r\n ].join(\" \")}\r\n onClick={pickPlan}\r\n role=\"button\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-disabled={disabled}\r\n aria-pressed={selected}\r\n onKeyDown={(e) => {\r\n if ((e.key === \"Enter\" || e.key === \" \") && !disabled) pickPlan();\r\n }}\r\n >\r\n <div style={{ display: \"grid\", gap: 4 }}>\r\n <div style={{ fontWeight: 900 }}>{p.label}</div>\r\n <div style={{ fontSize: 12, color: \"rgba(0,0,0,0.65)\" }}>\r\n Duration: {p.months} month(s)\r\n </div>\r\n </div>\r\n\r\n <div style={{ display: \"flex\", gap: 8 }}>\r\n <span className=\"glh-pay-pill\">{p.enabled ? \"ENABLED\" : \"DISABLED\"}</span>\r\n {selected ? <span className=\"glh-pay-pill\">SELECTED</span> : null}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n\r\n <div className=\"glh-pay-summary\">\r\n <div className=\"glh-pay-line\">\r\n <span>\r\n Total ({selectedPlan.months} × ₹{PRICE_PER_MONTH})\r\n </span>\r\n <span className=\"glh-pay-strong\">₹{total}</span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Discount</span>\r\n <span className=\"glh-pay-strong\">\r\n {discountPercent}% (-₹{discountAmount})\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span className=\"glh-pay-strong\">Net Payable</span>\r\n <span className=\"glh-pay-strong\">₹{netPayable}</span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"glh-pay-note\">\r\n Note: This package is frontend-only. Payment is always ₹0 because 100% discount is applied.\r\n </div>\r\n </>\r\n ) : (\r\n <div style={{ padding: 6 }}>\r\n <div style={{ fontWeight: 900, fontSize: 16, marginBottom: 8 }}>✅ Account Created</div>\r\n\r\n <div className=\"glh-pay-summary\" style={{ marginTop: 14 }}>\r\n <div className=\"glh-pay-line\">\r\n <span>Selected Plan</span>\r\n <span className=\"glh-pay-strong\">{selectedPlan.label}</span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Total</span>\r\n <span className=\"glh-pay-strong\">₹{total}</span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Discount</span>\r\n <span className=\"glh-pay-strong\">100% (-₹{total})</span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span className=\"glh-pay-strong\">Net Payable</span>\r\n <span className=\"glh-pay-strong\">₹0</span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <div className=\"glh-pay-footer\">\r\n {!accountCreated ? (\r\n <>\r\n <button className=\"glh-pay-secondary\" onClick={onClose}>\r\n Cancel\r\n </button>\r\n <button className=\"glh-pay-primary\" onClick={createAccountAndSubscribe}>\r\n Create Account\r\n </button>\r\n </>\r\n ) : (\r\n <button className=\"glh-pay-primary\" onClick={onClose}>\r\n Done\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n document.body\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { PaymentModal } from \"./PaymentModal.jsx\";\r\nimport \"./styles.css\";\r\n\r\n/**\r\n * AccountButton\r\n * - Navbar center ನಲ್ಲಿ place ಮಾಡಬಹುದು\r\n * - localStorage ನಲ್ಲಿ glh_payment_account ಇದ್ದರೆ button \"Subscribed ✓\" ಆಗಿ show ಆಗುತ್ತದೆ\r\n */\r\nexport function AccountButton({\r\n buttonText = \"Account\",\r\n subscribedText = \"Subscribed ✓\",\r\n wrapperClassName = \"\",\r\n buttonClassName = \"\",\r\n onAccountCreated\r\n}) {\r\n const [open, setOpen] = useState(false);\r\n const [hasAccount, setHasAccount] = useState(false);\r\n\r\n function readAccountFlag() {\r\n try {\r\n const saved = localStorage.getItem(\"glh_payment_account\");\r\n return !!saved;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setHasAccount(readAccountFlag());\r\n }, []);\r\n\r\n function handleClose() {\r\n setOpen(false);\r\n\r\n // close ಆದಮೇಲೆ storage re-check ಮಾಡಿ button text update\r\n try {\r\n const saved = localStorage.getItem(\"glh_payment_account\");\r\n const ok = !!saved;\r\n setHasAccount(ok);\r\n\r\n if (ok && typeof onAccountCreated === \"function\") {\r\n onAccountCreated(JSON.parse(saved));\r\n }\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n\r\n const label = hasAccount ? subscribedText : buttonText;\r\n\r\n return (\r\n <>\r\n <div className={`glh-pay-centerWrap ${wrapperClassName}`}>\r\n <button\r\n className={`glh-pay-btn ${buttonClassName}`}\r\n onClick={() => setOpen(true)}\r\n type=\"button\"\r\n >\r\n {label}\r\n </button>\r\n </div>\r\n\r\n <PaymentModal open={open} onClose={handleClose} />\r\n </>\r\n );\r\n}\r\n"],"names":["PRICE_PER_MONTH","PLAN_LIST","key","label","months","enabled","PaymentModal","open","onClose","defaultPlanKey","planKey","setPlanKey","useState","accountCreated","setAccountCreated","selectedPlan","useMemo","find","p","total","discountPercent","discountAmount","netPayable","handleBackdropClick","e","target","classList","contains","createAccountAndSubscribe","payload","createdAt","Date","toISOString","plan","pricePerMonth","localStorage","setItem","JSON","stringify","err","createPortal","React","createElement","className","onMouseDown","role","stopPropagation","onClick","Fragment","style","marginBottom","map","disabled","selected","pickPlan","join","tabIndex","onKeyDown","display","gap","fontWeight","fontSize","color","padding","marginTop","document","body","AccountButton","buttonText","subscribedText","wrapperClassName","buttonClassName","onAccountCreated","setOpen","hasAccount","setHasAccount","readAccountFlag","saved","getItem","useEffect","handleClose","ok","parse","type"],"mappings":"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"}
package/dist/index.esm.js CHANGED
@@ -93,10 +93,10 @@ function PaymentModal({
93
93
  }, PLAN_LIST.map(p => {
94
94
  const disabled = !p.enabled;
95
95
  const selected = p.key === planKey;
96
- function pickPlan() {
96
+ const pickPlan = () => {
97
97
  if (disabled) return;
98
98
  setPlanKey(p.key);
99
- }
99
+ };
100
100
  return /*#__PURE__*/React.createElement("div", {
101
101
  key: p.key,
102
102
  className: ["glh-pay-plan", disabled ? "glh-pay-planDisabled" : "", selected ? "glh-pay-selected" : ""].join(" "),
@@ -104,7 +104,10 @@ function PaymentModal({
104
104
  role: "button",
105
105
  tabIndex: disabled ? -1 : 0,
106
106
  "aria-disabled": disabled,
107
- "aria-pressed": selected
107
+ "aria-pressed": selected,
108
+ onKeyDown: e => {
109
+ if ((e.key === "Enter" || e.key === " ") && !disabled) pickPlan();
110
+ }
108
111
  }, /*#__PURE__*/React.createElement("div", {
109
112
  style: {
110
113
  display: "grid",
@@ -124,13 +127,11 @@ function PaymentModal({
124
127
  display: "flex",
125
128
  gap: 8
126
129
  }
127
- }, p.enabled ? /*#__PURE__*/React.createElement("span", {
130
+ }, /*#__PURE__*/React.createElement("span", {
128
131
  className: "glh-pay-pill"
129
- }, "ENABLED") : /*#__PURE__*/React.createElement("span", {
132
+ }, p.enabled ? "ENABLED" : "DISABLED"), selected ? /*#__PURE__*/React.createElement("span", {
130
133
  className: "glh-pay-pill"
131
- }, "DISABLED"), selected && /*#__PURE__*/React.createElement("span", {
132
- className: "glh-pay-pill"
133
- }, "SELECTED")));
134
+ }, "SELECTED") : null));
134
135
  })), /*#__PURE__*/React.createElement("div", {
135
136
  className: "glh-pay-summary"
136
137
  }, /*#__PURE__*/React.createElement("div", {
@@ -160,7 +161,10 @@ function PaymentModal({
160
161
  marginBottom: 8
161
162
  }
162
163
  }, "\u2705 Account Created"), /*#__PURE__*/React.createElement("div", {
163
- className: "glh-pay-summary"
164
+ className: "glh-pay-summary",
165
+ style: {
166
+ marginTop: 14
167
+ }
164
168
  }, /*#__PURE__*/React.createElement("div", {
165
169
  className: "glh-pay-line"
166
170
  }, /*#__PURE__*/React.createElement("span", null, "Selected Plan"), /*#__PURE__*/React.createElement("span", {
@@ -195,28 +199,33 @@ function PaymentModal({
195
199
 
196
200
  /**
197
201
  * AccountButton
198
- * - Place this component in the CENTER area of your navbar.
199
- * - It renders a button and a modal for account creation + subscription summary.
202
+ * - Navbar center ನಲ್ಲಿ place ಮಾಡಬಹುದು
203
+ * - localStorage ನಲ್ಲಿ glh_payment_account ಇದ್ದರೆ button "Subscribed ✓" ಆಗಿ show ಆಗುತ್ತದೆ
200
204
  */
201
205
  function AccountButton({
202
206
  buttonText = "Account",
207
+ subscribedText = "Subscribed ✓",
203
208
  wrapperClassName = "",
204
209
  buttonClassName = "",
205
210
  onAccountCreated
206
211
  }) {
207
212
  const [open, setOpen] = useState(false);
208
213
  const [hasAccount, setHasAccount] = useState(false);
209
- useEffect(() => {
214
+ function readAccountFlag() {
210
215
  try {
211
216
  const saved = localStorage.getItem("glh_payment_account");
212
- setHasAccount(!!saved);
217
+ return !!saved;
213
218
  } catch (e) {
214
- setHasAccount(false);
219
+ return false;
215
220
  }
216
- }, [open]);
221
+ }
222
+ useEffect(() => {
223
+ setHasAccount(readAccountFlag());
224
+ }, []);
217
225
  function handleClose() {
218
226
  setOpen(false);
219
- // refresh state after close
227
+
228
+ // close ಆದಮೇಲೆ storage re-check ಮಾಡಿ button text update
220
229
  try {
221
230
  const saved = localStorage.getItem("glh_payment_account");
222
231
  const ok = !!saved;
@@ -228,13 +237,14 @@ function AccountButton({
228
237
  // ignore
229
238
  }
230
239
  }
240
+ const label = hasAccount ? subscribedText : buttonText;
231
241
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
232
242
  className: `glh-pay-centerWrap ${wrapperClassName}`
233
243
  }, /*#__PURE__*/React.createElement("button", {
234
244
  className: `glh-pay-btn ${buttonClassName}`,
235
245
  onClick: () => setOpen(true),
236
246
  type: "button"
237
- }, hasAccount ? `${buttonText} ✓` : buttonText)), /*#__PURE__*/React.createElement(PaymentModal, {
247
+ }, label)), /*#__PURE__*/React.createElement(PaymentModal, {
238
248
  open: open,
239
249
  onClose: handleClose
240
250
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/components/PaymentModal.jsx","../src/components/AccountButton.jsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport \"./styles.css\";\r\n\r\nconst PRICE_PER_MONTH = 5;\r\n\r\nconst PLAN_LIST = [\r\n { key: \"monthly\", label: \"Monthly\", months: 1, enabled: false },\r\n { key: \"3m\", label: \"3 Months\", months: 3, enabled: false },\r\n { key: \"6m\", label: \"6 Months\", months: 6, enabled: true }, // Only enabled\r\n { key: \"1y\", label: \"Yearly\", months: 12, enabled: false },\r\n { key: \"3y\", label: \"3 Years\", months: 36, enabled: false }\r\n];\r\n\r\nexport function PaymentModal({ open, onClose }) {\r\n const defaultPlanKey = \"6m\";\r\n\r\n const [planKey, setPlanKey] = useState(defaultPlanKey);\r\n const [accountCreated, setAccountCreated] = useState(false);\r\n\r\n const selectedPlan = useMemo(() => {\r\n return PLAN_LIST.find((p) => p.key === planKey) || PLAN_LIST[2];\r\n }, [planKey]);\r\n\r\n const total = selectedPlan.months * PRICE_PER_MONTH;\r\n const discountPercent = 100;\r\n const discountAmount = total;\r\n const netPayable = 0;\r\n\r\n function handleBackdropClick(e) {\r\n if (e.target?.classList?.contains(\"glh-pay-backdrop\")) onClose?.();\r\n }\r\n\r\n function createAccountAndSubscribe() {\r\n const payload = {\r\n createdAt: new Date().toISOString(),\r\n plan: selectedPlan,\r\n pricePerMonth: PRICE_PER_MONTH,\r\n total,\r\n discountPercent,\r\n discountAmount,\r\n netPayable\r\n };\r\n\r\n try {\r\n localStorage.setItem(\"glh_payment_account\", JSON.stringify(payload));\r\n setAccountCreated(true);\r\n } catch (err) {\r\n setAccountCreated(true);\r\n }\r\n }\r\n\r\n if (!open) return null;\r\n\r\n return createPortal(\r\n <div\r\n className=\"glh-pay-backdrop\"\r\n onMouseDown={handleBackdropClick}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n >\r\n <div\r\n className=\"glh-pay-modal\"\r\n onMouseDown={(e) => e.stopPropagation()}\r\n >\r\n <div className=\"glh-pay-header\">\r\n <h3 className=\"glh-pay-title\">Create Payment Account</h3>\r\n <button\r\n className=\"glh-pay-close\"\r\n onClick={onClose}\r\n aria-label=\"Close\"\r\n >\r\n ✕\r\n </button>\r\n </div>\r\n\r\n <div className=\"glh-pay-body\">\r\n {!accountCreated ? (\r\n <>\r\n <div\r\n className=\"glh-pay-label\"\r\n style={{ marginBottom: 8 }}\r\n >\r\n Subscription Plans (₹{PRICE_PER_MONTH} / month)\r\n </div>\r\n\r\n <div className=\"glh-pay-plans\">\r\n {PLAN_LIST.map((p) => {\r\n const disabled = !p.enabled;\r\n const selected = p.key === planKey;\r\n\r\n function pickPlan() {\r\n if (disabled) return;\r\n setPlanKey(p.key);\r\n }\r\n\r\n return (\r\n <div\r\n key={p.key}\r\n className={[\r\n \"glh-pay-plan\",\r\n disabled ? \"glh-pay-planDisabled\" : \"\",\r\n selected ? \"glh-pay-selected\" : \"\"\r\n ].join(\" \")}\r\n onClick={pickPlan}\r\n role=\"button\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-disabled={disabled}\r\n aria-pressed={selected}\r\n >\r\n <div style={{ display: \"grid\", gap: 4 }}>\r\n <div style={{ fontWeight: 900 }}>\r\n {p.label}\r\n </div>\r\n <div\r\n style={{\r\n fontSize: 12,\r\n color: \"rgba(0,0,0,0.65)\"\r\n }}\r\n >\r\n Duration: {p.months} month(s)\r\n </div>\r\n </div>\r\n\r\n <div style={{ display: \"flex\", gap: 8 }}>\r\n {p.enabled ? (\r\n <span className=\"glh-pay-pill\">\r\n ENABLED\r\n </span>\r\n ) : (\r\n <span className=\"glh-pay-pill\">\r\n DISABLED\r\n </span>\r\n )}\r\n {selected && (\r\n <span className=\"glh-pay-pill\">\r\n SELECTED\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n\r\n <div className=\"glh-pay-summary\">\r\n <div className=\"glh-pay-line\">\r\n <span>\r\n Total ({selectedPlan.months} × ₹{PRICE_PER_MONTH})\r\n </span>\r\n <span className=\"glh-pay-strong\">\r\n ₹{total}\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Discount</span>\r\n <span className=\"glh-pay-strong\">\r\n {discountPercent}% (-₹{discountAmount})\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span className=\"glh-pay-strong\">\r\n Net Payable\r\n </span>\r\n <span className=\"glh-pay-strong\">\r\n ₹{netPayable}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"glh-pay-note\">\r\n Note: This package is frontend-only.\r\n Payment is always ₹0 because 100% discount is applied.\r\n </div>\r\n </>\r\n ) : (\r\n <div style={{ padding: 6 }}>\r\n <div\r\n style={{\r\n fontWeight: 900,\r\n fontSize: 16,\r\n marginBottom: 8\r\n }}\r\n >\r\n ✅ Account Created\r\n </div>\r\n\r\n <div className=\"glh-pay-summary\">\r\n <div className=\"glh-pay-line\">\r\n <span>Selected Plan</span>\r\n <span className=\"glh-pay-strong\">\r\n {selectedPlan.label}\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Total</span>\r\n <span className=\"glh-pay-strong\">\r\n ₹{total}\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Discount</span>\r\n <span className=\"glh-pay-strong\">\r\n 100% (-₹{total})\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span className=\"glh-pay-strong\">\r\n Net Payable\r\n </span>\r\n <span className=\"glh-pay-strong\">\r\n ₹0\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <div className=\"glh-pay-footer\">\r\n {!accountCreated ? (\r\n <>\r\n <button\r\n className=\"glh-pay-secondary\"\r\n onClick={onClose}\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n className=\"glh-pay-primary\"\r\n onClick={createAccountAndSubscribe}\r\n >\r\n Create Account\r\n </button>\r\n </>\r\n ) : (\r\n <button\r\n className=\"glh-pay-primary\"\r\n onClick={onClose}\r\n >\r\n Done\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n document.body\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { PaymentModal } from \"./PaymentModal.jsx\";\r\nimport \"./styles.css\";\r\n\r\n/**\r\n * AccountButton\r\n * - Place this component in the CENTER area of your navbar.\r\n * - It renders a button and a modal for account creation + subscription summary.\r\n */\r\nexport function AccountButton({\r\n buttonText = \"Account\",\r\n wrapperClassName = \"\",\r\n buttonClassName = \"\",\r\n onAccountCreated\r\n}) {\r\n const [open, setOpen] = useState(false);\r\n const [hasAccount, setHasAccount] = useState(false);\r\n\r\n useEffect(() => {\r\n try {\r\n const saved = localStorage.getItem(\"glh_payment_account\");\r\n setHasAccount(!!saved);\r\n } catch (e) {\r\n setHasAccount(false);\r\n }\r\n }, [open]);\r\n\r\n function handleClose() {\r\n setOpen(false);\r\n // refresh state after close\r\n try {\r\n const saved = localStorage.getItem(\"glh_payment_account\");\r\n const ok = !!saved;\r\n setHasAccount(ok);\r\n if (ok && typeof onAccountCreated === \"function\") {\r\n onAccountCreated(JSON.parse(saved));\r\n }\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <div className={`glh-pay-centerWrap ${wrapperClassName}`}>\r\n <button\r\n className={`glh-pay-btn ${buttonClassName}`}\r\n onClick={() => setOpen(true)}\r\n type=\"button\"\r\n >\r\n {hasAccount ? `${buttonText} ✓` : buttonText}\r\n </button>\r\n </div>\r\n\r\n <PaymentModal open={open} onClose={handleClose} />\r\n </>\r\n );\r\n}\r\n"],"names":["PRICE_PER_MONTH","PLAN_LIST","key","label","months","enabled","PaymentModal","open","onClose","defaultPlanKey","planKey","setPlanKey","useState","accountCreated","setAccountCreated","selectedPlan","useMemo","find","p","total","discountPercent","discountAmount","netPayable","handleBackdropClick","e","target","classList","contains","createAccountAndSubscribe","payload","createdAt","Date","toISOString","plan","pricePerMonth","localStorage","setItem","JSON","stringify","err","createPortal","React","createElement","className","onMouseDown","role","stopPropagation","onClick","Fragment","style","marginBottom","map","disabled","selected","pickPlan","join","tabIndex","display","gap","fontWeight","fontSize","color","padding","document","body","AccountButton","buttonText","wrapperClassName","buttonClassName","onAccountCreated","setOpen","hasAccount","setHasAccount","useEffect","saved","getItem","handleClose","ok","parse","type"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/components/PaymentModal.jsx","../src/components/AccountButton.jsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport \"./styles.css\";\r\n\r\nconst PRICE_PER_MONTH = 5;\r\n\r\nconst PLAN_LIST = [\r\n { key: \"monthly\", label: \"Monthly\", months: 1, enabled: false },\r\n { key: \"3m\", label: \"3 Months\", months: 3, enabled: false },\r\n { key: \"6m\", label: \"6 Months\", months: 6, enabled: true }, // Only enabled\r\n { key: \"1y\", label: \"Yearly\", months: 12, enabled: false },\r\n { key: \"3y\", label: \"3 Years\", months: 36, enabled: false }\r\n];\r\n\r\nexport function PaymentModal({ open, onClose }) {\r\n const defaultPlanKey = \"6m\";\r\n const [planKey, setPlanKey] = useState(defaultPlanKey);\r\n const [accountCreated, setAccountCreated] = useState(false);\r\n\r\n const selectedPlan = useMemo(() => {\r\n return PLAN_LIST.find((p) => p.key === planKey) || PLAN_LIST[2];\r\n }, [planKey]);\r\n\r\n const total = selectedPlan.months * PRICE_PER_MONTH;\r\n const discountPercent = 100;\r\n const discountAmount = total;\r\n const netPayable = 0;\r\n\r\n function handleBackdropClick(e) {\r\n if (e.target?.classList?.contains(\"glh-pay-backdrop\")) onClose?.();\r\n }\r\n\r\n function createAccountAndSubscribe() {\r\n const payload = {\r\n createdAt: new Date().toISOString(),\r\n plan: selectedPlan,\r\n pricePerMonth: PRICE_PER_MONTH,\r\n total,\r\n discountPercent,\r\n discountAmount,\r\n netPayable\r\n };\r\n\r\n try {\r\n localStorage.setItem(\"glh_payment_account\", JSON.stringify(payload));\r\n setAccountCreated(true);\r\n } catch (err) {\r\n setAccountCreated(true);\r\n }\r\n }\r\n\r\n if (!open) return null;\r\n\r\n return createPortal(\r\n <div\r\n className=\"glh-pay-backdrop\"\r\n onMouseDown={handleBackdropClick}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n >\r\n <div className=\"glh-pay-modal\" onMouseDown={(e) => e.stopPropagation()}>\r\n <div className=\"glh-pay-header\">\r\n <h3 className=\"glh-pay-title\">Create Payment Account</h3>\r\n <button className=\"glh-pay-close\" onClick={onClose} aria-label=\"Close\">\r\n ✕\r\n </button>\r\n </div>\r\n\r\n <div className=\"glh-pay-body\">\r\n {!accountCreated ? (\r\n <>\r\n <div className=\"glh-pay-label\" style={{ marginBottom: 8 }}>\r\n Subscription Plans (₹{PRICE_PER_MONTH} / month)\r\n </div>\r\n\r\n <div className=\"glh-pay-plans\">\r\n {PLAN_LIST.map((p) => {\r\n const disabled = !p.enabled;\r\n const selected = p.key === planKey;\r\n\r\n const pickPlan = () => {\r\n if (disabled) return;\r\n setPlanKey(p.key);\r\n };\r\n\r\n return (\r\n <div\r\n key={p.key}\r\n className={[\r\n \"glh-pay-plan\",\r\n disabled ? \"glh-pay-planDisabled\" : \"\",\r\n selected ? \"glh-pay-selected\" : \"\"\r\n ].join(\" \")}\r\n onClick={pickPlan}\r\n role=\"button\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-disabled={disabled}\r\n aria-pressed={selected}\r\n onKeyDown={(e) => {\r\n if ((e.key === \"Enter\" || e.key === \" \") && !disabled) pickPlan();\r\n }}\r\n >\r\n <div style={{ display: \"grid\", gap: 4 }}>\r\n <div style={{ fontWeight: 900 }}>{p.label}</div>\r\n <div style={{ fontSize: 12, color: \"rgba(0,0,0,0.65)\" }}>\r\n Duration: {p.months} month(s)\r\n </div>\r\n </div>\r\n\r\n <div style={{ display: \"flex\", gap: 8 }}>\r\n <span className=\"glh-pay-pill\">{p.enabled ? \"ENABLED\" : \"DISABLED\"}</span>\r\n {selected ? <span className=\"glh-pay-pill\">SELECTED</span> : null}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n\r\n <div className=\"glh-pay-summary\">\r\n <div className=\"glh-pay-line\">\r\n <span>\r\n Total ({selectedPlan.months} × ₹{PRICE_PER_MONTH})\r\n </span>\r\n <span className=\"glh-pay-strong\">₹{total}</span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Discount</span>\r\n <span className=\"glh-pay-strong\">\r\n {discountPercent}% (-₹{discountAmount})\r\n </span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span className=\"glh-pay-strong\">Net Payable</span>\r\n <span className=\"glh-pay-strong\">₹{netPayable}</span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"glh-pay-note\">\r\n Note: This package is frontend-only. Payment is always ₹0 because 100% discount is applied.\r\n </div>\r\n </>\r\n ) : (\r\n <div style={{ padding: 6 }}>\r\n <div style={{ fontWeight: 900, fontSize: 16, marginBottom: 8 }}>✅ Account Created</div>\r\n\r\n <div className=\"glh-pay-summary\" style={{ marginTop: 14 }}>\r\n <div className=\"glh-pay-line\">\r\n <span>Selected Plan</span>\r\n <span className=\"glh-pay-strong\">{selectedPlan.label}</span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Total</span>\r\n <span className=\"glh-pay-strong\">₹{total}</span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span>Discount</span>\r\n <span className=\"glh-pay-strong\">100% (-₹{total})</span>\r\n </div>\r\n <div className=\"glh-pay-line\">\r\n <span className=\"glh-pay-strong\">Net Payable</span>\r\n <span className=\"glh-pay-strong\">₹0</span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <div className=\"glh-pay-footer\">\r\n {!accountCreated ? (\r\n <>\r\n <button className=\"glh-pay-secondary\" onClick={onClose}>\r\n Cancel\r\n </button>\r\n <button className=\"glh-pay-primary\" onClick={createAccountAndSubscribe}>\r\n Create Account\r\n </button>\r\n </>\r\n ) : (\r\n <button className=\"glh-pay-primary\" onClick={onClose}>\r\n Done\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n document.body\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { PaymentModal } from \"./PaymentModal.jsx\";\r\nimport \"./styles.css\";\r\n\r\n/**\r\n * AccountButton\r\n * - Navbar center ನಲ್ಲಿ place ಮಾಡಬಹುದು\r\n * - localStorage ನಲ್ಲಿ glh_payment_account ಇದ್ದರೆ button \"Subscribed ✓\" ಆಗಿ show ಆಗುತ್ತದೆ\r\n */\r\nexport function AccountButton({\r\n buttonText = \"Account\",\r\n subscribedText = \"Subscribed ✓\",\r\n wrapperClassName = \"\",\r\n buttonClassName = \"\",\r\n onAccountCreated\r\n}) {\r\n const [open, setOpen] = useState(false);\r\n const [hasAccount, setHasAccount] = useState(false);\r\n\r\n function readAccountFlag() {\r\n try {\r\n const saved = localStorage.getItem(\"glh_payment_account\");\r\n return !!saved;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setHasAccount(readAccountFlag());\r\n }, []);\r\n\r\n function handleClose() {\r\n setOpen(false);\r\n\r\n // close ಆದಮೇಲೆ storage re-check ಮಾಡಿ button text update\r\n try {\r\n const saved = localStorage.getItem(\"glh_payment_account\");\r\n const ok = !!saved;\r\n setHasAccount(ok);\r\n\r\n if (ok && typeof onAccountCreated === \"function\") {\r\n onAccountCreated(JSON.parse(saved));\r\n }\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n\r\n const label = hasAccount ? subscribedText : buttonText;\r\n\r\n return (\r\n <>\r\n <div className={`glh-pay-centerWrap ${wrapperClassName}`}>\r\n <button\r\n className={`glh-pay-btn ${buttonClassName}`}\r\n onClick={() => setOpen(true)}\r\n type=\"button\"\r\n >\r\n {label}\r\n </button>\r\n </div>\r\n\r\n <PaymentModal open={open} onClose={handleClose} />\r\n </>\r\n );\r\n}\r\n"],"names":["PRICE_PER_MONTH","PLAN_LIST","key","label","months","enabled","PaymentModal","open","onClose","defaultPlanKey","planKey","setPlanKey","useState","accountCreated","setAccountCreated","selectedPlan","useMemo","find","p","total","discountPercent","discountAmount","netPayable","handleBackdropClick","e","target","classList","contains","createAccountAndSubscribe","payload","createdAt","Date","toISOString","plan","pricePerMonth","localStorage","setItem","JSON","stringify","err","createPortal","React","createElement","className","onMouseDown","role","stopPropagation","onClick","Fragment","style","marginBottom","map","disabled","selected","pickPlan","join","tabIndex","onKeyDown","display","gap","fontWeight","fontSize","color","padding","marginTop","document","body","AccountButton","buttonText","subscribedText","wrapperClassName","buttonClassName","onAccountCreated","setOpen","hasAccount","setHasAccount","readAccountFlag","saved","getItem","useEffect","handleClose","ok","parse","type"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@samsheena/payment-ui",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Frontend-only payment account + subscription UI (₹5/month) with 100% discount",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",