@cleartrip/talos-time-bound-action-widget 2.0.0-beta-260717-7.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/TimeBoundActionWidget.d.ts +5 -0
- package/dist/TimeBoundActionWidget.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/style.d.ts +15 -0
- package/dist/style.d.ts.map +1 -0
- package/dist/talos-time-bound-action-widget.browser.cjs.js +2 -0
- package/dist/talos-time-bound-action-widget.browser.cjs.js.map +1 -0
- package/dist/talos-time-bound-action-widget.browser.esm.js +2 -0
- package/dist/talos-time-bound-action-widget.browser.esm.js.map +1 -0
- package/dist/talos-time-bound-action-widget.cjs.js +73 -0
- package/dist/talos-time-bound-action-widget.cjs.js.map +1 -0
- package/dist/talos-time-bound-action-widget.esm.js +70 -0
- package/dist/talos-time-bound-action-widget.esm.js.map +1 -0
- package/dist/talos-time-bound-action-widget.umd.js +31987 -0
- package/dist/talos-time-bound-action-widget.umd.js.map +1 -0
- package/dist/type.d.ts +11 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/useExpiryCountdown.d.ts +5 -0
- package/dist/useExpiryCountdown.d.ts.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IWidgetProps } from "@cleartrip/talos-widget-types";
|
|
2
|
+
import type { ITimeBoundActionWidgetProps } from "./type";
|
|
3
|
+
declare const TimeBoundActionWidget: ({ data, }: IWidgetProps<ITimeBoundActionWidgetProps>) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export default TimeBoundActionWidget;
|
|
5
|
+
//# sourceMappingURL=TimeBoundActionWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeBoundActionWidget.d.ts","sourceRoot":"","sources":["../packages/components/time-bound-action-widget/src/TimeBoundActionWidget.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAIlE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,QAAQ,CAAC;AAE1D,QAAA,MAAM,qBAAqB,cAExB,aAAa,2BAA2B,CAAC,4CA4C3C,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../packages/components/time-bound-action-widget/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/style.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Theme } from "@cleartrip/ct-design-components";
|
|
2
|
+
export declare const getTimeBoundActionWidgetStyle: (theme: Theme) => {
|
|
3
|
+
root: {
|
|
4
|
+
display: string;
|
|
5
|
+
flexDirection: string;
|
|
6
|
+
gap: "12px";
|
|
7
|
+
};
|
|
8
|
+
ctaContainer: {
|
|
9
|
+
display: string;
|
|
10
|
+
flexDirection: string;
|
|
11
|
+
alignItems: string;
|
|
12
|
+
gap: "12px";
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../packages/components/time-bound-action-widget/src/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAExD,eAAO,MAAM,6BAA6B,UAAW,KAAK;;;;;;;;;;;;CAezD,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var n=require("tslib"),r=require("react/jsx-runtime"),e=require("react"),t=require("@cleartrip/ct-design-components"),i=require("@cleartrip/talos-general-utils"),a=require("@cleartrip/talos-use-chat-controller"),o=function(n){var r=i.parseEpochMs(n);return null===r?0:Math.max(0,r-Date.now())},s=function(n){var r=e.useState(function(){return o(n)}),t=r[0],i=r[1];return e.useEffect(function(){var r=function(){var r=o(n);return i(r),r};if(!(r()<=0)){var e=window.setInterval(function(){r()<=0&&window.clearInterval(e)},1e3);return function(){return window.clearInterval(e)}}},[n]),{remainingMs:t,isExpired:t<=0}};exports.TimeBoundActionWidget=function(o){var l=o.data,c=t.useTheme(),u=a.useAppDispatch().dispatchAll,p=l||{},d=p.title,f=void 0===d?"":d,v=p.countdownConfig,g=p.cta,x=void 0===g?[]:g,h=e.useMemo(function(){return function(n){return{root:{display:"flex",flexDirection:"column",gap:n.spacing[3]},ctaContainer:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:n.spacing[3]}}}(c)},[c]),m=s(null==v?void 0:v.expiryTime),y=m.remainingMs,C=m.isExpired,w=i.formatCountdown(y);return r.jsxs(t.Container,n.__assign({css:h.root},{children:[r.jsxs(t.Typography,n.__assign({variant:t.TypographyVariant.L2,color:C?t.TypographyColor.DISABLED:t.TypographyColor.WARNING},{children:[f," ",w]})),r.jsx(t.Container,n.__assign({css:h.ctaContainer},{children:x.map(function(e,i){var a=e.data,o=e.events,s=a||{},l=s.label,c=s.variant,p=s.color,d=s.size,f=(o||{}).onClick,v=void 0===f?[]:f;return r.jsx(t.Button,n.__assign({variant:c,color:p,size:d,disabled:C,onClick:function(){return u(null!=v?v:[])}},{children:null==a?void 0:a.label}),"".concat(null!=l?l:i))})}))]}))},exports.useExpiryCountdown=s;
|
|
2
|
+
//# sourceMappingURL=talos-time-bound-action-widget.browser.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talos-time-bound-action-widget.browser.cjs.js","sources":["../packages/components/time-bound-action-widget/src/useExpiryCountdown.ts","../packages/components/time-bound-action-widget/src/TimeBoundActionWidget.tsx","../packages/components/time-bound-action-widget/src/style.ts"],"sourcesContent":[null,null,null],"names":["getRemainingMs","expiryTime","expiryMs","parseEpochMs","Math","max","Date","now","useExpiryCountdown","_a","useState","remainingMs","setRemainingMs","useEffect","update","remaining","intervalId","window","setInterval","clearInterval","isExpired","data","theme","useTheme","dispatchAll","useAppDispatch","_b","_c","title","countdownConfig","_d","cta","staticStyles","useMemo","root","display","flexDirection","gap","spacing","ctaContainer","alignItems","getTimeBoundActionWidgetStyle","_e","countdownLabel","formatCountdown","_jsxs","jsxs","Container","__assign","css","children","Typography","variant","TypographyVariant","L2","color","TypographyColor","DISABLED","WARNING","_jsx","jsx","map","index","events","label","size","onClick","Button","disabled","concat"],"mappings":"iOAKMA,EAAiB,SAACC,GACtB,IAAMC,EAAWC,eAAaF,GAC9B,OAAiB,OAAbC,EAA0B,EACvBE,KAAKC,IAAI,EAAGH,EAAWI,KAAKC,MACrC,EAGaC,EAAqB,SAACP,GAC3B,IAAAQ,EAAgCC,EAAAA,SAAS,WAC7C,OAAAV,EAAeC,EAAf,GADKU,OAAaC,OAqBpB,OAjBAC,EAAAA,UAAU,WACR,IAAMC,EAAS,WACb,IAAMC,EAAYf,EAAeC,GAEjC,OADAW,EAAeG,GACRA,CACT,EAEA,KAAID,KAAY,GAAhB,CAEA,IAAME,EAAaC,OAAOC,YAAY,WACXJ,KACD,GAAGG,OAAOE,cAAcH,EACjD,EA1BW,KA4BZ,OAAO,WAAM,OAAAC,OAAOE,cAAcH,EAArB,CAPa,CAQ5B,EAAG,CAACf,IAEG,CAAEU,YAAWA,EAAES,UAAWT,GAAe,EAClD,gCClB8B,SAACF,GAC7B,IAAAY,EAAIZ,EAAAY,KAEEC,EAAQC,EAAAA,WACNC,EAAgBC,+BAClBC,EAA4CL,GAAQ,CAAE,EAApDM,EAAUD,EAAAE,MAAVA,OAAQ,IAAAD,EAAA,KAAIE,oBAAiBC,EAAAJ,EAAAK,IAAAA,OAAG,IAAAD,EAAG,GAAEA,EAEvCE,EAAeC,UACnB,WAAM,OCvBmC,SAACX,GAC5C,MAAO,CACLY,KAAM,CACJC,QAAS,OACTC,cAAe,SACfC,IAAKf,EAAMgB,QAAQ,IAGrBC,aAAc,CACZJ,QAAS,OACTC,cAAe,SACfI,WAAY,aACZH,IAAKf,EAAMgB,QAAQ,IAGzB,CDQUG,CAA8BnB,EAAM,EAC1C,CAACA,IAEGoB,EAA6BlC,EACjCqB,aAAA,EAAAA,EAAiB5B,YADXU,gBAAaS,cAIfuB,EAAiBC,kBAAgBjC,GAEvC,OACEkC,EAACC,KAAAC,YAAUC,EAAAA,SAAA,CAAAC,IAAKjB,EAAaE,MAC3B,CAAAgB,SAAA,CAAAL,EAAAA,KAACM,EAAAA,WAAUH,EAAAA,SAAA,CACTI,QAASC,oBAAkBC,GAC3BC,MAAOnC,EAAYoC,kBAAgBC,SAAWD,EAAeA,gBAACE,SAAO,CAAAR,SAAA,CAEpEtB,EAAK,IAAGe,MAGXgB,EAAAC,IAACb,YAASC,EAAAA,SAAA,CAACC,IAAKjB,EAAaO,cAC1B,CAAAW,SAAAnB,EAAI8B,IAAI,SAACpD,EAAkBqD,OAAhBzC,EAAIZ,EAAAY,KAAE0C,EAAMtD,EAAAsD,OAChBrC,EAAkCL,GAAQ,CAAA,EAAxC2C,EAAKtC,EAAAsC,MAAEZ,EAAO1B,EAAA0B,QAAEG,EAAK7B,EAAA6B,MAAEU,SACvBtC,GAAiBoC,GAAU,CAAA,GAAfG,QAAZA,OAAO,IAAAvC,EAAG,GAAEA,EACpB,OACEgC,EAACC,IAAAO,SAECnB,EAAAA,SAAA,CAAAI,QAASA,EACTG,MAAOA,EACPU,KAAMA,EACNG,SAAUhD,EACV8C,QAAS,WAAM,OAAA1C,EAAY0C,QAAAA,EAAW,MAAG,CAAAhB,SAExC7B,aAAI,EAAJA,EAAM2C,QAPF,GAAAK,OAAGL,QAAAA,EAASF,GAUtB,SAIT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__assign as n}from"tslib";import{jsxs as r,jsx as t}from"react/jsx-runtime";import{useState as i,useEffect as o,useMemo as e}from"react";import{useTheme as a,Container as l,Typography as c,TypographyVariant as u,TypographyColor as s,Button as f}from"@cleartrip/ct-design-components";import{parseEpochMs as d,formatCountdown as m}from"@cleartrip/talos-general-utils";import{useAppDispatch as p}from"@cleartrip/talos-use-chat-controller";var v=function(n){var r=d(n);return null===r?0:Math.max(0,r-Date.now())},x=function(n){var r=i(function(){return v(n)}),t=r[0],e=r[1];return o(function(){var r=function(){var r=v(n);return e(r),r};if(!(r()<=0)){var t=window.setInterval(function(){r()<=0&&window.clearInterval(t)},1e3);return function(){return window.clearInterval(t)}}},[n]),{remainingMs:t,isExpired:t<=0}},g=function(i){var o=i.data,d=a(),v=p().dispatchAll,g=o||{},w=g.title,h=void 0===w?"":w,I=g.countdownConfig,C=g.cta,D=void 0===C?[]:C,b=e(function(){return function(n){return{root:{display:"flex",flexDirection:"column",gap:n.spacing[3]},ctaContainer:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:n.spacing[3]}}}(d)},[d]),y=x(null==I?void 0:I.expiryTime),A=y.remainingMs,E=y.isExpired,M=m(A);return r(l,n({css:b.root},{children:[r(c,n({variant:u.L2,color:E?s.DISABLED:s.WARNING},{children:[h," ",M]})),t(l,n({css:b.ctaContainer},{children:D.map(function(r,i){var o=r.data,e=r.events,a=o||{},l=a.label,c=a.variant,u=a.color,s=a.size,d=(e||{}).onClick,m=void 0===d?[]:d;return t(f,n({variant:c,color:u,size:s,disabled:E,onClick:function(){return v(null!=m?m:[])}},{children:null==o?void 0:o.label}),"".concat(null!=l?l:i))})}))]}))};export{g as TimeBoundActionWidget,x as useExpiryCountdown};
|
|
2
|
+
//# sourceMappingURL=talos-time-bound-action-widget.browser.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talos-time-bound-action-widget.browser.esm.js","sources":["../packages/components/time-bound-action-widget/src/useExpiryCountdown.ts","../packages/components/time-bound-action-widget/src/TimeBoundActionWidget.tsx","../packages/components/time-bound-action-widget/src/style.ts"],"sourcesContent":[null,null,null],"names":["getRemainingMs","expiryTime","expiryMs","parseEpochMs","Math","max","Date","now","useExpiryCountdown","_a","useState","remainingMs","setRemainingMs","useEffect","update","remaining","intervalId","window","setInterval","clearInterval","isExpired","TimeBoundActionWidget","data","theme","useTheme","dispatchAll","useAppDispatch","_b","_c","title","countdownConfig","_d","cta","staticStyles","useMemo","root","display","flexDirection","gap","spacing","ctaContainer","alignItems","getTimeBoundActionWidgetStyle","_e","countdownLabel","formatCountdown","_jsxs","Container","__assign","css","children","Typography","variant","TypographyVariant","L2","color","TypographyColor","DISABLED","WARNING","_jsx","map","index","events","label","size","onClick","Button","disabled","concat"],"mappings":"2bAGA,IAEMA,EAAiB,SAACC,GACtB,IAAMC,EAAWC,EAAaF,GAC9B,OAAiB,OAAbC,EAA0B,EACvBE,KAAKC,IAAI,EAAGH,EAAWI,KAAKC,MACrC,EAGaC,EAAqB,SAACP,GAC3B,IAAAQ,EAAgCC,EAAS,WAC7C,OAAAV,EAAeC,EAAf,GADKU,OAAaC,OAqBpB,OAjBAC,EAAU,WACR,IAAMC,EAAS,WACb,IAAMC,EAAYf,EAAeC,GAEjC,OADAW,EAAeG,GACRA,CACT,EAEA,KAAID,KAAY,GAAhB,CAEA,IAAME,EAAaC,OAAOC,YAAY,WACXJ,KACD,GAAGG,OAAOE,cAAcH,EACjD,EA1BW,KA4BZ,OAAO,WAAM,OAAAC,OAAOE,cAAcH,EAArB,CAPa,CAQ5B,EAAG,CAACf,IAEG,CAAEU,YAAWA,EAAES,UAAWT,GAAe,EAClD,EClBMU,EAAwB,SAACZ,GAC7B,IAAAa,EAAIb,EAAAa,KAEEC,EAAQC,IACNC,EAAgBC,gBAClBC,EAA4CL,GAAQ,CAAE,EAApDM,EAAUD,EAAAE,MAAVA,OAAQ,IAAAD,EAAA,KAAIE,oBAAiBC,EAAAJ,EAAAK,IAAAA,OAAG,IAAAD,EAAG,GAAEA,EAEvCE,EAAeC,EACnB,WAAM,OCvBmC,SAACX,GAC5C,MAAO,CACLY,KAAM,CACJC,QAAS,OACTC,cAAe,SACfC,IAAKf,EAAMgB,QAAQ,IAGrBC,aAAc,CACZJ,QAAS,OACTC,cAAe,SACfI,WAAY,aACZH,IAAKf,EAAMgB,QAAQ,IAGzB,CDQUG,CAA8BnB,EAAM,EAC1C,CAACA,IAEGoB,EAA6BnC,EACjCsB,aAAA,EAAAA,EAAiB7B,YADXU,gBAAaS,cAIfwB,EAAiBC,EAAgBlC,GAEvC,OACEmC,EAACC,EAAUC,EAAA,CAAAC,IAAKhB,EAAaE,MAC3B,CAAAe,SAAA,CAAAJ,EAACK,EAAUH,EAAA,CACTI,QAASC,EAAkBC,GAC3BC,MAAOnC,EAAYoC,EAAgBC,SAAWD,EAAgBE,SAAO,CAAAR,SAAA,CAEpErB,EAAK,IAAGe,MAGXe,EAACZ,EAASC,EAAA,CAACC,IAAKhB,EAAaO,cAC1B,CAAAU,SAAAlB,EAAI4B,IAAI,SAACnD,EAAkBoD,OAAhBvC,EAAIb,EAAAa,KAAEwC,EAAMrD,EAAAqD,OAChBnC,EAAkCL,GAAQ,CAAA,EAAxCyC,EAAKpC,EAAAoC,MAAEX,EAAOzB,EAAAyB,QAAEG,EAAK5B,EAAA4B,MAAES,SACvBpC,GAAiBkC,GAAU,CAAA,GAAfG,QAAZA,OAAO,IAAArC,EAAG,GAAEA,EACpB,OACE+B,EAACO,EAEClB,EAAA,CAAAI,QAASA,EACTG,MAAOA,EACPS,KAAMA,EACNG,SAAU/C,EACV6C,QAAS,WAAM,OAAAxC,EAAYwC,QAAAA,EAAW,MAAG,CAAAf,SAExC5B,aAAI,EAAJA,EAAMyC,QAPF,GAAAK,OAAGL,QAAAA,EAASF,GAUtB,SAIT"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var ctDesignComponents = require('@cleartrip/ct-design-components');
|
|
7
|
+
var talosGeneralUtils = require('@cleartrip/talos-general-utils');
|
|
8
|
+
var talosUseChatController = require('@cleartrip/talos-use-chat-controller');
|
|
9
|
+
|
|
10
|
+
var TICK_MS = 1000;
|
|
11
|
+
var getRemainingMs = function (expiryTime) {
|
|
12
|
+
var expiryMs = talosGeneralUtils.parseEpochMs(expiryTime);
|
|
13
|
+
if (expiryMs === null)
|
|
14
|
+
return 0;
|
|
15
|
+
return Math.max(0, expiryMs - Date.now());
|
|
16
|
+
};
|
|
17
|
+
var useExpiryCountdown = function (expiryTime) {
|
|
18
|
+
var _a = react.useState(function () {
|
|
19
|
+
return getRemainingMs(expiryTime);
|
|
20
|
+
}), remainingMs = _a[0], setRemainingMs = _a[1];
|
|
21
|
+
react.useEffect(function () {
|
|
22
|
+
var update = function () {
|
|
23
|
+
var remaining = getRemainingMs(expiryTime);
|
|
24
|
+
setRemainingMs(remaining);
|
|
25
|
+
return remaining;
|
|
26
|
+
};
|
|
27
|
+
if (update() <= 0)
|
|
28
|
+
return;
|
|
29
|
+
var intervalId = window.setInterval(function () {
|
|
30
|
+
var updatedRemaining = update();
|
|
31
|
+
if (updatedRemaining <= 0)
|
|
32
|
+
window.clearInterval(intervalId);
|
|
33
|
+
}, TICK_MS);
|
|
34
|
+
return function () { return window.clearInterval(intervalId); };
|
|
35
|
+
}, [expiryTime]);
|
|
36
|
+
return { remainingMs: remainingMs, isExpired: remainingMs <= 0 };
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
var getTimeBoundActionWidgetStyle = function (theme) {
|
|
40
|
+
return {
|
|
41
|
+
root: {
|
|
42
|
+
display: "flex",
|
|
43
|
+
flexDirection: "column",
|
|
44
|
+
gap: theme.spacing[3],
|
|
45
|
+
},
|
|
46
|
+
ctaContainer: {
|
|
47
|
+
display: "flex",
|
|
48
|
+
flexDirection: "column",
|
|
49
|
+
alignItems: "flex-start",
|
|
50
|
+
gap: theme.spacing[3],
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
var TimeBoundActionWidget = function (_a) {
|
|
56
|
+
var data = _a.data;
|
|
57
|
+
var theme = ctDesignComponents.useTheme();
|
|
58
|
+
var dispatchAll = talosUseChatController.useAppDispatch().dispatchAll;
|
|
59
|
+
var _b = data || {}, _c = _b.title, title = _c === void 0 ? "" : _c, countdownConfig = _b.countdownConfig, _d = _b.cta, cta = _d === void 0 ? [] : _d;
|
|
60
|
+
var staticStyles = react.useMemo(function () { return getTimeBoundActionWidgetStyle(theme); }, [theme]);
|
|
61
|
+
var _e = useExpiryCountdown(countdownConfig === null || countdownConfig === void 0 ? void 0 : countdownConfig.expiryTime), remainingMs = _e.remainingMs, isExpired = _e.isExpired;
|
|
62
|
+
var countdownLabel = talosGeneralUtils.formatCountdown(remainingMs);
|
|
63
|
+
return (jsxRuntime.jsxs(ctDesignComponents.Container, tslib.__assign({ css: staticStyles.root }, { children: [jsxRuntime.jsxs(ctDesignComponents.Typography, tslib.__assign({ variant: ctDesignComponents.TypographyVariant.L2, color: isExpired ? ctDesignComponents.TypographyColor.DISABLED : ctDesignComponents.TypographyColor.WARNING }, { children: [title, " ", countdownLabel] })), jsxRuntime.jsx(ctDesignComponents.Container, tslib.__assign({ css: staticStyles.ctaContainer }, { children: cta.map(function (_a, index) {
|
|
64
|
+
var data = _a.data, events = _a.events;
|
|
65
|
+
var _b = data || {}, label = _b.label, variant = _b.variant, color = _b.color, size = _b.size;
|
|
66
|
+
var _c = (events || {}).onClick, onClick = _c === void 0 ? [] : _c;
|
|
67
|
+
return (jsxRuntime.jsx(ctDesignComponents.Button, tslib.__assign({ variant: variant, color: color, size: size, disabled: isExpired, onClick: function () { return dispatchAll(onClick !== null && onClick !== void 0 ? onClick : []); } }, { children: data === null || data === void 0 ? void 0 : data.label }), "".concat(label !== null && label !== void 0 ? label : index)));
|
|
68
|
+
}) }))] })));
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
exports.TimeBoundActionWidget = TimeBoundActionWidget;
|
|
72
|
+
exports.useExpiryCountdown = useExpiryCountdown;
|
|
73
|
+
//# sourceMappingURL=talos-time-bound-action-widget.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talos-time-bound-action-widget.cjs.js","sources":["../packages/components/time-bound-action-widget/src/useExpiryCountdown.ts","../packages/components/time-bound-action-widget/src/style.ts","../packages/components/time-bound-action-widget/src/TimeBoundActionWidget.tsx"],"sourcesContent":[null,null,null],"names":["parseEpochMs","useState","useEffect","useTheme","useAppDispatch","useMemo","formatCountdown","_jsxs","Container","__assign","Typography","TypographyVariant","TypographyColor","_jsx","Button"],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { __assign } from 'tslib';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useState, useEffect, useMemo } from 'react';
|
|
4
|
+
import { useTheme, Container, Typography, TypographyVariant, TypographyColor, Button } from '@cleartrip/ct-design-components';
|
|
5
|
+
import { parseEpochMs, formatCountdown } from '@cleartrip/talos-general-utils';
|
|
6
|
+
import { useAppDispatch } from '@cleartrip/talos-use-chat-controller';
|
|
7
|
+
|
|
8
|
+
var TICK_MS = 1000;
|
|
9
|
+
var getRemainingMs = function (expiryTime) {
|
|
10
|
+
var expiryMs = parseEpochMs(expiryTime);
|
|
11
|
+
if (expiryMs === null)
|
|
12
|
+
return 0;
|
|
13
|
+
return Math.max(0, expiryMs - Date.now());
|
|
14
|
+
};
|
|
15
|
+
var useExpiryCountdown = function (expiryTime) {
|
|
16
|
+
var _a = useState(function () {
|
|
17
|
+
return getRemainingMs(expiryTime);
|
|
18
|
+
}), remainingMs = _a[0], setRemainingMs = _a[1];
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
var update = function () {
|
|
21
|
+
var remaining = getRemainingMs(expiryTime);
|
|
22
|
+
setRemainingMs(remaining);
|
|
23
|
+
return remaining;
|
|
24
|
+
};
|
|
25
|
+
if (update() <= 0)
|
|
26
|
+
return;
|
|
27
|
+
var intervalId = window.setInterval(function () {
|
|
28
|
+
var updatedRemaining = update();
|
|
29
|
+
if (updatedRemaining <= 0)
|
|
30
|
+
window.clearInterval(intervalId);
|
|
31
|
+
}, TICK_MS);
|
|
32
|
+
return function () { return window.clearInterval(intervalId); };
|
|
33
|
+
}, [expiryTime]);
|
|
34
|
+
return { remainingMs: remainingMs, isExpired: remainingMs <= 0 };
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var getTimeBoundActionWidgetStyle = function (theme) {
|
|
38
|
+
return {
|
|
39
|
+
root: {
|
|
40
|
+
display: "flex",
|
|
41
|
+
flexDirection: "column",
|
|
42
|
+
gap: theme.spacing[3],
|
|
43
|
+
},
|
|
44
|
+
ctaContainer: {
|
|
45
|
+
display: "flex",
|
|
46
|
+
flexDirection: "column",
|
|
47
|
+
alignItems: "flex-start",
|
|
48
|
+
gap: theme.spacing[3],
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
var TimeBoundActionWidget = function (_a) {
|
|
54
|
+
var data = _a.data;
|
|
55
|
+
var theme = useTheme();
|
|
56
|
+
var dispatchAll = useAppDispatch().dispatchAll;
|
|
57
|
+
var _b = data || {}, _c = _b.title, title = _c === void 0 ? "" : _c, countdownConfig = _b.countdownConfig, _d = _b.cta, cta = _d === void 0 ? [] : _d;
|
|
58
|
+
var staticStyles = useMemo(function () { return getTimeBoundActionWidgetStyle(theme); }, [theme]);
|
|
59
|
+
var _e = useExpiryCountdown(countdownConfig === null || countdownConfig === void 0 ? void 0 : countdownConfig.expiryTime), remainingMs = _e.remainingMs, isExpired = _e.isExpired;
|
|
60
|
+
var countdownLabel = formatCountdown(remainingMs);
|
|
61
|
+
return (jsxs(Container, __assign({ css: staticStyles.root }, { children: [jsxs(Typography, __assign({ variant: TypographyVariant.L2, color: isExpired ? TypographyColor.DISABLED : TypographyColor.WARNING }, { children: [title, " ", countdownLabel] })), jsx(Container, __assign({ css: staticStyles.ctaContainer }, { children: cta.map(function (_a, index) {
|
|
62
|
+
var data = _a.data, events = _a.events;
|
|
63
|
+
var _b = data || {}, label = _b.label, variant = _b.variant, color = _b.color, size = _b.size;
|
|
64
|
+
var _c = (events || {}).onClick, onClick = _c === void 0 ? [] : _c;
|
|
65
|
+
return (jsx(Button, __assign({ variant: variant, color: color, size: size, disabled: isExpired, onClick: function () { return dispatchAll(onClick !== null && onClick !== void 0 ? onClick : []); } }, { children: data === null || data === void 0 ? void 0 : data.label }), "".concat(label !== null && label !== void 0 ? label : index)));
|
|
66
|
+
}) }))] })));
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { TimeBoundActionWidget, useExpiryCountdown };
|
|
70
|
+
//# sourceMappingURL=talos-time-bound-action-widget.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talos-time-bound-action-widget.esm.js","sources":["../packages/components/time-bound-action-widget/src/useExpiryCountdown.ts","../packages/components/time-bound-action-widget/src/style.ts","../packages/components/time-bound-action-widget/src/TimeBoundActionWidget.tsx"],"sourcesContent":[null,null,null],"names":["_jsxs","_jsx"],"mappings":"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"}
|