@fileverse-dev/fortune-react 1.0.52 → 1.0.54
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/es/components/CryptoDenominationSelector/index.js +1 -2
- package/es/components/SheetTab/index.js +32 -4
- package/es/components/Toolbar/Combo.js +5 -1
- package/es/components/Toolbar/index.js +1 -2
- package/es/utils/convertCellsToCrypto.d.ts +2 -2
- package/es/utils/convertCellsToCrypto.js +151 -78
- package/es/utils/cryptoApi.d.ts +1 -0
- package/es/utils/cryptoApi.js +9 -2
- package/lib/components/CryptoDenominationSelector/index.js +1 -2
- package/lib/components/SheetTab/index.js +32 -4
- package/lib/components/Toolbar/Combo.js +5 -1
- package/lib/components/Toolbar/index.js +1 -2
- package/lib/utils/convertCellsToCrypto.d.ts +2 -2
- package/lib/utils/convertCellsToCrypto.js +151 -78
- package/lib/utils/cryptoApi.d.ts +1 -0
- package/lib/utils/cryptoApi.js +10 -2
- package/package.json +2 -2
|
@@ -173,8 +173,7 @@ var CryptoDenominationSelector = function CryptoDenominationSelector(_a) {
|
|
|
173
173
|
context: context,
|
|
174
174
|
setContext: setContext,
|
|
175
175
|
denomination: newDenomination,
|
|
176
|
-
decimals: decimals
|
|
177
|
-
baseCurrency: "USD"
|
|
176
|
+
decimals: decimals
|
|
178
177
|
})];
|
|
179
178
|
case 1:
|
|
180
179
|
_a.sent();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _ from "lodash";
|
|
2
2
|
import React, { useCallback, useContext, useEffect, useRef, useState } from "react";
|
|
3
|
+
import { useMediaQuery } from 'usehooks-ts';
|
|
3
4
|
import { updateCell, addSheet } from "@fileverse-dev/fortune-core";
|
|
4
5
|
import WorkbookContext from "../../context";
|
|
5
6
|
import SVGIcon from "../SVGIcon";
|
|
@@ -7,6 +8,9 @@ import "./index.css";
|
|
|
7
8
|
import SheetItem from "./SheetItem";
|
|
8
9
|
import ZoomControl from "../ZoomControl";
|
|
9
10
|
var SheetTab = function SheetTab() {
|
|
11
|
+
var isMobile = useMediaQuery('(max-width: 780px)', {
|
|
12
|
+
defaultValue: true
|
|
13
|
+
});
|
|
10
14
|
var _a = useContext(WorkbookContext),
|
|
11
15
|
context = _a.context,
|
|
12
16
|
setContext = _a.setContext,
|
|
@@ -53,11 +57,29 @@ var SheetTab = function SheetTab() {
|
|
|
53
57
|
setIsShowScrollBtn(tabCurrent.scrollWidth > tabCurrent.clientWidth);
|
|
54
58
|
});
|
|
55
59
|
}, [refs.cellInput, setContext, settings]);
|
|
60
|
+
var _d = useState(true),
|
|
61
|
+
showDisclaimer = _d[0],
|
|
62
|
+
setShowDisclaimer = _d[1];
|
|
63
|
+
var handleCloseDisclaimer = function handleCloseDisclaimer() {
|
|
64
|
+
var _a;
|
|
65
|
+
setShowDisclaimer(false);
|
|
66
|
+
var cornerPlus = document.getElementById("corner-plus");
|
|
67
|
+
if (cornerPlus) {
|
|
68
|
+
((_a = cornerPlus === null || cornerPlus === void 0 ? void 0 : cornerPlus.style) === null || _a === void 0 ? void 0 : _a.display) === "block";
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
useEffect(function () {
|
|
72
|
+
var _a;
|
|
73
|
+
var cornerPlus = document.getElementById("corner-plus");
|
|
74
|
+
if (cornerPlus) {
|
|
75
|
+
((_a = cornerPlus === null || cornerPlus === void 0 ? void 0 : cornerPlus.style) === null || _a === void 0 ? void 0 : _a.display) === "none";
|
|
76
|
+
}
|
|
77
|
+
}, [isMobile]);
|
|
56
78
|
useEffect(function () {
|
|
57
79
|
var _a;
|
|
58
80
|
(_a = settings.onSheetCountChange) === null || _a === void 0 ? void 0 : _a.call(settings, context.luckysheetfile.length);
|
|
59
81
|
}, [context.luckysheetfile.length]);
|
|
60
|
-
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
82
|
+
return /*#__PURE__*/React.createElement("div", null, showDisclaimer && /*#__PURE__*/React.createElement("div", {
|
|
61
83
|
className: "w-full",
|
|
62
84
|
id: "denomination-warning",
|
|
63
85
|
style: {
|
|
@@ -73,12 +95,18 @@ var SheetTab = function SheetTab() {
|
|
|
73
95
|
bottom: "31px"
|
|
74
96
|
}
|
|
75
97
|
}, /*#__PURE__*/React.createElement("div", {
|
|
76
|
-
className: "max-w-7xl mx-auto px-4 py-1"
|
|
98
|
+
className: "max-w-7xl mx-auto px-4 py-1 ".concat(isMobile && "w-full flex justify-between")
|
|
77
99
|
}, /*#__PURE__*/React.createElement("p", {
|
|
78
|
-
className: "text-center text-xsm"
|
|
100
|
+
className: "".concat(isMobile ? "text-left" : "text-center", " text-xsm")
|
|
79
101
|
}, /*#__PURE__*/React.createElement("span", {
|
|
80
102
|
className: "font-medium"
|
|
81
|
-
}, "Disclaimer:"), " Prices are not updated in real time and may differ slightly. Updates may be delayed by up to 20 minutes.")
|
|
103
|
+
}, "Disclaimer:"), " Prices are not updated in real time and may differ slightly. Updates may be delayed by up to 20 minutes."), isMobile && /*#__PURE__*/React.createElement("p", {
|
|
104
|
+
className: "ml-4 content-center cursor-pointer",
|
|
105
|
+
style: {
|
|
106
|
+
alignContent: "center"
|
|
107
|
+
},
|
|
108
|
+
onClick: handleCloseDisclaimer
|
|
109
|
+
}, "Close"))), /*#__PURE__*/React.createElement("div", {
|
|
82
110
|
className: "luckysheet-sheet-area luckysheet-noselected-text",
|
|
83
111
|
onContextMenu: function onContextMenu(e) {
|
|
84
112
|
return e.preventDefault();
|
|
@@ -87,7 +87,11 @@ var Combo = function Combo(_a) {
|
|
|
87
87
|
})))));
|
|
88
88
|
return /*#__PURE__*/React.createElement("div", {
|
|
89
89
|
ref: buttonRef,
|
|
90
|
-
className: "fortune-toolbar-item"
|
|
90
|
+
className: "fortune-toolbar-item",
|
|
91
|
+
onKeyDown: function onKeyDown(e) {
|
|
92
|
+
e.stopPropagation();
|
|
93
|
+
console.log("clicked");
|
|
94
|
+
}
|
|
91
95
|
}, /*#__PURE__*/React.createElement(Popover, {
|
|
92
96
|
open: open,
|
|
93
97
|
onOpenChange: handleOpenChange,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const getFiatSymbol: (code: string) => string;
|
|
2
|
-
export declare
|
|
2
|
+
export declare const getFiatGeckoId: (symbol: string, baseCurrency: string) => string;
|
|
3
|
+
export declare function convertCellsToCrypto({ context, setContext, denomination, decimals, }: {
|
|
3
4
|
context: any;
|
|
4
5
|
setContext: (fn: (ctx: any) => void) => void;
|
|
5
6
|
denomination: string;
|
|
6
7
|
decimals: number;
|
|
7
|
-
baseCurrency: string;
|
|
8
8
|
}): Promise<void>;
|
|
@@ -114,7 +114,7 @@ var __generator = this && this.__generator || function (thisArg, body) {
|
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
116
|
import { getFlowdata } from "@fileverse-dev/fortune-core";
|
|
117
|
-
import {
|
|
117
|
+
import { getCachedPrice } from "./cryptoApi";
|
|
118
118
|
export var getFiatSymbol = function getFiatSymbol(code) {
|
|
119
119
|
switch (code) {
|
|
120
120
|
case "USD":
|
|
@@ -133,6 +133,80 @@ export var getFiatSymbol = function getFiatSymbol(code) {
|
|
|
133
133
|
return code;
|
|
134
134
|
}
|
|
135
135
|
};
|
|
136
|
+
export var getFiatGeckoId = function getFiatGeckoId(symbol, baseCurrency) {
|
|
137
|
+
switch (symbol) {
|
|
138
|
+
case "$":
|
|
139
|
+
return "usd";
|
|
140
|
+
case "€":
|
|
141
|
+
return "eur";
|
|
142
|
+
case "£":
|
|
143
|
+
return "gbp";
|
|
144
|
+
case "CN¥":
|
|
145
|
+
return "cny";
|
|
146
|
+
case "HK$":
|
|
147
|
+
return "hkd";
|
|
148
|
+
case "JP¥":
|
|
149
|
+
return "jpy";
|
|
150
|
+
case "AU$":
|
|
151
|
+
return "aud";
|
|
152
|
+
case "৳":
|
|
153
|
+
return "bdt";
|
|
154
|
+
case "BHD":
|
|
155
|
+
return "bhd";
|
|
156
|
+
case "R$":
|
|
157
|
+
return "brl";
|
|
158
|
+
case "CA$":
|
|
159
|
+
return "cad";
|
|
160
|
+
case "CHF":
|
|
161
|
+
return "chf";
|
|
162
|
+
case "CLP$":
|
|
163
|
+
return "clp";
|
|
164
|
+
case "kr.":
|
|
165
|
+
return "dkk";
|
|
166
|
+
case "GEL":
|
|
167
|
+
return "gel";
|
|
168
|
+
case "HUF":
|
|
169
|
+
return "huf";
|
|
170
|
+
case "Rp.":
|
|
171
|
+
return "idr";
|
|
172
|
+
case "Rs.":
|
|
173
|
+
return "inr";
|
|
174
|
+
case "₩":
|
|
175
|
+
return "krw";
|
|
176
|
+
case "KWD":
|
|
177
|
+
return "kwd";
|
|
178
|
+
case "K":
|
|
179
|
+
return "mmk";
|
|
180
|
+
case "Mex$":
|
|
181
|
+
return "mxn";
|
|
182
|
+
case "RM":
|
|
183
|
+
return "myr";
|
|
184
|
+
case "₦":
|
|
185
|
+
return "ngn";
|
|
186
|
+
case "kr":
|
|
187
|
+
return "nok";
|
|
188
|
+
case "₱":
|
|
189
|
+
return "php";
|
|
190
|
+
case "zł":
|
|
191
|
+
return "pln";
|
|
192
|
+
case "₽":
|
|
193
|
+
return "rub";
|
|
194
|
+
case "Rial":
|
|
195
|
+
return "sar";
|
|
196
|
+
case "S$":
|
|
197
|
+
return "sgd";
|
|
198
|
+
case "฿":
|
|
199
|
+
return "thb";
|
|
200
|
+
case "₺":
|
|
201
|
+
return "try";
|
|
202
|
+
case "грн.":
|
|
203
|
+
return "uah";
|
|
204
|
+
case "ZAR":
|
|
205
|
+
return "zar";
|
|
206
|
+
default:
|
|
207
|
+
return baseCurrency || "usd";
|
|
208
|
+
}
|
|
209
|
+
};
|
|
136
210
|
var COINGECKO_IDS = {
|
|
137
211
|
BTC: "bitcoin",
|
|
138
212
|
ETH: "ethereum",
|
|
@@ -142,87 +216,86 @@ export function convertCellsToCrypto(_a) {
|
|
|
142
216
|
var context = _a.context,
|
|
143
217
|
setContext = _a.setContext,
|
|
144
218
|
denomination = _a.denomination,
|
|
145
|
-
decimals = _a.decimals
|
|
146
|
-
baseCurrency = _a.baseCurrency;
|
|
219
|
+
decimals = _a.decimals;
|
|
147
220
|
return __awaiter(this, void 0, void 0, function () {
|
|
148
|
-
var selections, flowdata, selectedCells, denomStr, coingeckoId,
|
|
221
|
+
var selections, flowdata, selectedCells, denomStr, coingeckoId, cellUpdates;
|
|
149
222
|
return __generator(this, function (_b) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
for (var col = selection.column[0]; col <= selection.column[1]; col += 1) {
|
|
159
|
-
selectedCells.push({
|
|
160
|
-
row: row,
|
|
161
|
-
col: col
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
denomStr = typeof denomination === "string" && denomination.trim() !== "" ? denomination : "ETH";
|
|
167
|
-
denomStr = denomStr.toUpperCase();
|
|
168
|
-
coingeckoId = typeof COINGECKO_IDS[denomStr] === "string" ? COINGECKO_IDS[denomStr] : "ethereum";
|
|
169
|
-
return [4, getCryptoPrice(String(coingeckoId), baseCurrency.toLowerCase())];
|
|
170
|
-
case 1:
|
|
171
|
-
price = _b.sent();
|
|
172
|
-
cellUpdates = [];
|
|
173
|
-
selectedCells.forEach(function (_a) {
|
|
174
|
-
var _b, _c, _d;
|
|
175
|
-
var row = _a.row,
|
|
176
|
-
col = _a.col;
|
|
177
|
-
var cell = (_b = flowdata[row]) === null || _b === void 0 ? void 0 : _b[col];
|
|
178
|
-
var baseValue = 0;
|
|
179
|
-
if ((cell === null || cell === void 0 ? void 0 : cell.baseValue) !== undefined) {
|
|
180
|
-
baseValue = cell.baseValue;
|
|
181
|
-
} else {
|
|
182
|
-
if (typeof (cell === null || cell === void 0 ? void 0 : cell.v) === "number") {
|
|
183
|
-
baseValue = cell.v;
|
|
184
|
-
} else if (typeof (cell === null || cell === void 0 ? void 0 : cell.v) === "string") {
|
|
185
|
-
baseValue = parseFloat(cell.v);
|
|
186
|
-
}
|
|
187
|
-
if (((_c = cell === null || cell === void 0 ? void 0 : cell.ct) === null || _c === void 0 ? void 0 : _c.fa) && cell.ct.fa.includes('"')) {
|
|
188
|
-
var numericValue = parseFloat(((_d = cell.v) === null || _d === void 0 ? void 0 : _d.toString()) || "0");
|
|
189
|
-
if (!Number.isNaN(numericValue)) {
|
|
190
|
-
baseValue = numericValue;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
if (!baseValue || Number.isNaN(baseValue)) return;
|
|
195
|
-
var cryptoValue = baseValue / price;
|
|
196
|
-
cellUpdates.push({
|
|
223
|
+
selections = context.luckysheet_select_save;
|
|
224
|
+
flowdata = getFlowdata(context);
|
|
225
|
+
if (!selections || !flowdata) return [2];
|
|
226
|
+
selectedCells = [];
|
|
227
|
+
selections.forEach(function (selection) {
|
|
228
|
+
for (var row = selection.row[0]; row <= selection.row[1]; row += 1) {
|
|
229
|
+
for (var col = selection.column[0]; col <= selection.column[1]; col += 1) {
|
|
230
|
+
selectedCells.push({
|
|
197
231
|
row: row,
|
|
198
|
-
col: col
|
|
199
|
-
baseValue: baseValue,
|
|
200
|
-
cryptoValue: cryptoValue
|
|
232
|
+
col: col
|
|
201
233
|
});
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
denomStr = typeof denomination === "string" && denomination.trim() !== "" ? denomination : "ETH";
|
|
238
|
+
denomStr = denomStr.toUpperCase();
|
|
239
|
+
coingeckoId = typeof COINGECKO_IDS[denomStr] === "string" ? COINGECKO_IDS[denomStr] : "ethereum";
|
|
240
|
+
cellUpdates = [];
|
|
241
|
+
selectedCells.forEach(function (_a) {
|
|
242
|
+
var _b, _c, _d, _e;
|
|
243
|
+
var row = _a.row,
|
|
244
|
+
col = _a.col;
|
|
245
|
+
var cell = (_b = flowdata[row]) === null || _b === void 0 ? void 0 : _b[col];
|
|
246
|
+
var baseValue = 0;
|
|
247
|
+
if ((cell === null || cell === void 0 ? void 0 : cell.baseValue) !== undefined) {
|
|
248
|
+
baseValue = cell.baseValue;
|
|
249
|
+
} else {
|
|
250
|
+
if (typeof (cell === null || cell === void 0 ? void 0 : cell.v) === "number") {
|
|
251
|
+
baseValue = cell.v;
|
|
252
|
+
} else if (typeof (cell === null || cell === void 0 ? void 0 : cell.v) === "string") {
|
|
253
|
+
baseValue = parseFloat(cell.v);
|
|
254
|
+
}
|
|
255
|
+
if (((_c = cell === null || cell === void 0 ? void 0 : cell.ct) === null || _c === void 0 ? void 0 : _c.fa) && cell.ct.fa.includes('"')) {
|
|
256
|
+
var numericValue = parseFloat(((_d = cell.v) === null || _d === void 0 ? void 0 : _d.toString()) || "0");
|
|
257
|
+
if (!Number.isNaN(numericValue)) {
|
|
258
|
+
baseValue = numericValue;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (!baseValue || Number.isNaN(baseValue)) return;
|
|
263
|
+
var fiatSymbol = (_e = cell === null || cell === void 0 ? void 0 : cell.m) === null || _e === void 0 ? void 0 : _e.split(" ")[0];
|
|
264
|
+
var fiatVsCryptoPrice = getCachedPrice(coingeckoId, getFiatGeckoId(fiatSymbol, cell === null || cell === void 0 ? void 0 : cell.baseCurrency));
|
|
265
|
+
var cryptoValue = baseValue / fiatVsCryptoPrice;
|
|
266
|
+
console.log(getFiatGeckoId(fiatSymbol, cell === null || cell === void 0 ? void 0 : cell.baseCurrency));
|
|
267
|
+
cellUpdates.push({
|
|
268
|
+
row: row,
|
|
269
|
+
col: col,
|
|
270
|
+
baseValue: baseValue,
|
|
271
|
+
cryptoValue: cryptoValue,
|
|
272
|
+
baseCurrency: getFiatGeckoId(fiatSymbol) || "usd"
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
setContext(function (ctx) {
|
|
276
|
+
var d = getFlowdata(ctx);
|
|
277
|
+
if (!d || !Array.isArray(d)) return;
|
|
278
|
+
cellUpdates.forEach(function (_a) {
|
|
279
|
+
var row = _a.row,
|
|
280
|
+
col = _a.col,
|
|
281
|
+
baseValue = _a.baseValue,
|
|
282
|
+
cryptoValue = _a.cryptoValue,
|
|
283
|
+
baseCurrency = _a.baseCurrency;
|
|
284
|
+
if (!d[row]) d[row] = [];
|
|
285
|
+
if (!d[row][col]) d[row][col] = {};
|
|
286
|
+
var cellCp = d[row][col];
|
|
287
|
+
cellCp.v = baseValue.toString();
|
|
288
|
+
cellCp.m = "".concat(cryptoValue.toFixed(decimals), " ").concat(denomStr);
|
|
289
|
+
cellCp.ct = {
|
|
290
|
+
fa: "0.".concat("0".repeat(decimals), " \"").concat(denomStr, "\""),
|
|
291
|
+
t: "n"
|
|
292
|
+
};
|
|
293
|
+
cellCp.baseValue = baseValue;
|
|
294
|
+
cellCp.baseCurrency = baseCurrency.toLowerCase();
|
|
295
|
+
d[row][col] = cellCp;
|
|
296
|
+
});
|
|
297
|
+
});
|
|
298
|
+
return [2];
|
|
226
299
|
});
|
|
227
300
|
});
|
|
228
301
|
}
|
package/es/utils/cryptoApi.d.ts
CHANGED
package/es/utils/cryptoApi.js
CHANGED
|
@@ -113,10 +113,10 @@ var __generator = this && this.__generator || function (thisArg, body) {
|
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
|
-
var COINGECKO_API = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd,eur,gbp,
|
|
116
|
+
var COINGECKO_API = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd,aed,ars,aud,bdt,bhd,bmd,brl,cad,chf,clp,cny,czk,dkk,eur,gbp,gel,hkd,huf,idr,ils,inr,jpy,krw,kwd,lkr,mmk,mxn,myr,ngn,nok,nzd,php,pkr,pln,rub,sar,sek,sgd,thb,try,twd,uah,vef,vnd,zar";
|
|
117
117
|
var CACHE_DURATION = 60 * 1000;
|
|
118
118
|
var CRYPTO_LIST = ["bitcoin", "ethereum", "solana"];
|
|
119
|
-
var FIAT_LIST = ["usd", "eur", "gbp", "
|
|
119
|
+
var FIAT_LIST = ["usd", "aed", "ars", "aud", "bdt", "bhd", "bmd", "brl", "cad", "chf", "clp", "cny", "czk", "dkk", "eur", "gbp", "gel", "hkd", "huf", "idr", "ils", "inr", "jpy", "krw", "kwd", "lkr", "mmk", "mxn", "myr", "ngn", "nok", "nzd", "php", "pkr", "pln", "rub", "sar", "sek", "sgd", "thb", "try", "twd", "uah", "vef", "vnd", "zar"];
|
|
120
120
|
var priceCache = {};
|
|
121
121
|
function updatePriceCache(data, timestamp) {
|
|
122
122
|
CRYPTO_LIST.forEach(function (crypto) {
|
|
@@ -155,6 +155,7 @@ export function getCryptoPrice(crypto, fiat) {
|
|
|
155
155
|
return __generator(this, function (_b) {
|
|
156
156
|
switch (_b.label) {
|
|
157
157
|
case 0:
|
|
158
|
+
console.log("Fetching price for", crypto, fiat);
|
|
158
159
|
key = "".concat(crypto, "-").concat(fiat).toLowerCase();
|
|
159
160
|
now = Date.now();
|
|
160
161
|
if (priceCache[key] && now - priceCache[key].timestamp < CACHE_DURATION) {
|
|
@@ -177,6 +178,12 @@ export function getCryptoPrice(crypto, fiat) {
|
|
|
177
178
|
});
|
|
178
179
|
});
|
|
179
180
|
}
|
|
181
|
+
export var getCachedPrice = function getCachedPrice(crypto, fiat) {
|
|
182
|
+
var _a;
|
|
183
|
+
var key = "".concat(crypto, "-").concat(fiat).toLowerCase();
|
|
184
|
+
getCryptoPrice(crypto, fiat);
|
|
185
|
+
return (_a = priceCache[key]) === null || _a === void 0 ? void 0 : _a.price;
|
|
186
|
+
};
|
|
180
187
|
export function clearCryptoPriceCache() {
|
|
181
188
|
Object.keys(priceCache).forEach(function (key) {
|
|
182
189
|
return delete priceCache[key];
|
|
@@ -182,8 +182,7 @@ var CryptoDenominationSelector = function CryptoDenominationSelector(_a) {
|
|
|
182
182
|
context: context,
|
|
183
183
|
setContext: setContext,
|
|
184
184
|
denomination: newDenomination,
|
|
185
|
-
decimals: decimals
|
|
186
|
-
baseCurrency: "USD"
|
|
185
|
+
decimals: decimals
|
|
187
186
|
})];
|
|
188
187
|
case 1:
|
|
189
188
|
_a.sent();
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _usehooksTs = require("usehooks-ts");
|
|
10
11
|
var _fortuneCore = require("@fileverse-dev/fortune-core");
|
|
11
12
|
var _context = _interopRequireDefault(require("../../context"));
|
|
12
13
|
var _SVGIcon = _interopRequireDefault(require("../SVGIcon"));
|
|
@@ -16,6 +17,9 @@ var _ZoomControl = _interopRequireDefault(require("../ZoomControl"));
|
|
|
16
17
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
17
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
19
|
var SheetTab = function SheetTab() {
|
|
20
|
+
var isMobile = (0, _usehooksTs.useMediaQuery)('(max-width: 780px)', {
|
|
21
|
+
defaultValue: true
|
|
22
|
+
});
|
|
19
23
|
var _a = (0, _react.useContext)(_context.default),
|
|
20
24
|
context = _a.context,
|
|
21
25
|
setContext = _a.setContext,
|
|
@@ -62,11 +66,29 @@ var SheetTab = function SheetTab() {
|
|
|
62
66
|
setIsShowScrollBtn(tabCurrent.scrollWidth > tabCurrent.clientWidth);
|
|
63
67
|
});
|
|
64
68
|
}, [refs.cellInput, setContext, settings]);
|
|
69
|
+
var _d = (0, _react.useState)(true),
|
|
70
|
+
showDisclaimer = _d[0],
|
|
71
|
+
setShowDisclaimer = _d[1];
|
|
72
|
+
var handleCloseDisclaimer = function handleCloseDisclaimer() {
|
|
73
|
+
var _a;
|
|
74
|
+
setShowDisclaimer(false);
|
|
75
|
+
var cornerPlus = document.getElementById("corner-plus");
|
|
76
|
+
if (cornerPlus) {
|
|
77
|
+
((_a = cornerPlus === null || cornerPlus === void 0 ? void 0 : cornerPlus.style) === null || _a === void 0 ? void 0 : _a.display) === "block";
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
(0, _react.useEffect)(function () {
|
|
81
|
+
var _a;
|
|
82
|
+
var cornerPlus = document.getElementById("corner-plus");
|
|
83
|
+
if (cornerPlus) {
|
|
84
|
+
((_a = cornerPlus === null || cornerPlus === void 0 ? void 0 : cornerPlus.style) === null || _a === void 0 ? void 0 : _a.display) === "none";
|
|
85
|
+
}
|
|
86
|
+
}, [isMobile]);
|
|
65
87
|
(0, _react.useEffect)(function () {
|
|
66
88
|
var _a;
|
|
67
89
|
(_a = settings.onSheetCountChange) === null || _a === void 0 ? void 0 : _a.call(settings, context.luckysheetfile.length);
|
|
68
90
|
}, [context.luckysheetfile.length]);
|
|
69
|
-
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
91
|
+
return /*#__PURE__*/_react.default.createElement("div", null, showDisclaimer && /*#__PURE__*/_react.default.createElement("div", {
|
|
70
92
|
className: "w-full",
|
|
71
93
|
id: "denomination-warning",
|
|
72
94
|
style: {
|
|
@@ -82,12 +104,18 @@ var SheetTab = function SheetTab() {
|
|
|
82
104
|
bottom: "31px"
|
|
83
105
|
}
|
|
84
106
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
85
|
-
className: "max-w-7xl mx-auto px-4 py-1"
|
|
107
|
+
className: "max-w-7xl mx-auto px-4 py-1 ".concat(isMobile && "w-full flex justify-between")
|
|
86
108
|
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
87
|
-
className: "text-center text-xsm"
|
|
109
|
+
className: "".concat(isMobile ? "text-left" : "text-center", " text-xsm")
|
|
88
110
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
89
111
|
className: "font-medium"
|
|
90
|
-
}, "Disclaimer:"), " Prices are not updated in real time and may differ slightly. Updates may be delayed by up to 20 minutes.")
|
|
112
|
+
}, "Disclaimer:"), " Prices are not updated in real time and may differ slightly. Updates may be delayed by up to 20 minutes."), isMobile && /*#__PURE__*/_react.default.createElement("p", {
|
|
113
|
+
className: "ml-4 content-center cursor-pointer",
|
|
114
|
+
style: {
|
|
115
|
+
alignContent: "center"
|
|
116
|
+
},
|
|
117
|
+
onClick: handleCloseDisclaimer
|
|
118
|
+
}, "Close"))), /*#__PURE__*/_react.default.createElement("div", {
|
|
91
119
|
className: "luckysheet-sheet-area luckysheet-noselected-text",
|
|
92
120
|
onContextMenu: function onContextMenu(e) {
|
|
93
121
|
return e.preventDefault();
|
|
@@ -96,7 +96,11 @@ var Combo = function Combo(_a) {
|
|
|
96
96
|
})))));
|
|
97
97
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
98
98
|
ref: buttonRef,
|
|
99
|
-
className: "fortune-toolbar-item"
|
|
99
|
+
className: "fortune-toolbar-item",
|
|
100
|
+
onKeyDown: function onKeyDown(e) {
|
|
101
|
+
e.stopPropagation();
|
|
102
|
+
console.log("clicked");
|
|
103
|
+
}
|
|
100
104
|
}, /*#__PURE__*/_react.default.createElement(_ui.Popover, {
|
|
101
105
|
open: open,
|
|
102
106
|
onOpenChange: handleOpenChange,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const getFiatSymbol: (code: string) => string;
|
|
2
|
-
export declare
|
|
2
|
+
export declare const getFiatGeckoId: (symbol: string, baseCurrency: string) => string;
|
|
3
|
+
export declare function convertCellsToCrypto({ context, setContext, denomination, decimals, }: {
|
|
3
4
|
context: any;
|
|
4
5
|
setContext: (fn: (ctx: any) => void) => void;
|
|
5
6
|
denomination: string;
|
|
6
7
|
decimals: number;
|
|
7
|
-
baseCurrency: string;
|
|
8
8
|
}): Promise<void>;
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.convertCellsToCrypto = convertCellsToCrypto;
|
|
7
|
-
exports.getFiatSymbol = void 0;
|
|
7
|
+
exports.getFiatSymbol = exports.getFiatGeckoId = void 0;
|
|
8
8
|
var _fortuneCore = require("@fileverse-dev/fortune-core");
|
|
9
9
|
var _cryptoApi = require("./cryptoApi");
|
|
10
10
|
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
@@ -140,6 +140,80 @@ var getFiatSymbol = exports.getFiatSymbol = function getFiatSymbol(code) {
|
|
|
140
140
|
return code;
|
|
141
141
|
}
|
|
142
142
|
};
|
|
143
|
+
var getFiatGeckoId = exports.getFiatGeckoId = function getFiatGeckoId(symbol, baseCurrency) {
|
|
144
|
+
switch (symbol) {
|
|
145
|
+
case "$":
|
|
146
|
+
return "usd";
|
|
147
|
+
case "€":
|
|
148
|
+
return "eur";
|
|
149
|
+
case "£":
|
|
150
|
+
return "gbp";
|
|
151
|
+
case "CN¥":
|
|
152
|
+
return "cny";
|
|
153
|
+
case "HK$":
|
|
154
|
+
return "hkd";
|
|
155
|
+
case "JP¥":
|
|
156
|
+
return "jpy";
|
|
157
|
+
case "AU$":
|
|
158
|
+
return "aud";
|
|
159
|
+
case "৳":
|
|
160
|
+
return "bdt";
|
|
161
|
+
case "BHD":
|
|
162
|
+
return "bhd";
|
|
163
|
+
case "R$":
|
|
164
|
+
return "brl";
|
|
165
|
+
case "CA$":
|
|
166
|
+
return "cad";
|
|
167
|
+
case "CHF":
|
|
168
|
+
return "chf";
|
|
169
|
+
case "CLP$":
|
|
170
|
+
return "clp";
|
|
171
|
+
case "kr.":
|
|
172
|
+
return "dkk";
|
|
173
|
+
case "GEL":
|
|
174
|
+
return "gel";
|
|
175
|
+
case "HUF":
|
|
176
|
+
return "huf";
|
|
177
|
+
case "Rp.":
|
|
178
|
+
return "idr";
|
|
179
|
+
case "Rs.":
|
|
180
|
+
return "inr";
|
|
181
|
+
case "₩":
|
|
182
|
+
return "krw";
|
|
183
|
+
case "KWD":
|
|
184
|
+
return "kwd";
|
|
185
|
+
case "K":
|
|
186
|
+
return "mmk";
|
|
187
|
+
case "Mex$":
|
|
188
|
+
return "mxn";
|
|
189
|
+
case "RM":
|
|
190
|
+
return "myr";
|
|
191
|
+
case "₦":
|
|
192
|
+
return "ngn";
|
|
193
|
+
case "kr":
|
|
194
|
+
return "nok";
|
|
195
|
+
case "₱":
|
|
196
|
+
return "php";
|
|
197
|
+
case "zł":
|
|
198
|
+
return "pln";
|
|
199
|
+
case "₽":
|
|
200
|
+
return "rub";
|
|
201
|
+
case "Rial":
|
|
202
|
+
return "sar";
|
|
203
|
+
case "S$":
|
|
204
|
+
return "sgd";
|
|
205
|
+
case "฿":
|
|
206
|
+
return "thb";
|
|
207
|
+
case "₺":
|
|
208
|
+
return "try";
|
|
209
|
+
case "грн.":
|
|
210
|
+
return "uah";
|
|
211
|
+
case "ZAR":
|
|
212
|
+
return "zar";
|
|
213
|
+
default:
|
|
214
|
+
return baseCurrency || "usd";
|
|
215
|
+
}
|
|
216
|
+
};
|
|
143
217
|
var COINGECKO_IDS = {
|
|
144
218
|
BTC: "bitcoin",
|
|
145
219
|
ETH: "ethereum",
|
|
@@ -149,87 +223,86 @@ function convertCellsToCrypto(_a) {
|
|
|
149
223
|
var context = _a.context,
|
|
150
224
|
setContext = _a.setContext,
|
|
151
225
|
denomination = _a.denomination,
|
|
152
|
-
decimals = _a.decimals
|
|
153
|
-
baseCurrency = _a.baseCurrency;
|
|
226
|
+
decimals = _a.decimals;
|
|
154
227
|
return __awaiter(this, void 0, void 0, function () {
|
|
155
|
-
var selections, flowdata, selectedCells, denomStr, coingeckoId,
|
|
228
|
+
var selections, flowdata, selectedCells, denomStr, coingeckoId, cellUpdates;
|
|
156
229
|
return __generator(this, function (_b) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
for (var col = selection.column[0]; col <= selection.column[1]; col += 1) {
|
|
166
|
-
selectedCells.push({
|
|
167
|
-
row: row,
|
|
168
|
-
col: col
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
denomStr = typeof denomination === "string" && denomination.trim() !== "" ? denomination : "ETH";
|
|
174
|
-
denomStr = denomStr.toUpperCase();
|
|
175
|
-
coingeckoId = typeof COINGECKO_IDS[denomStr] === "string" ? COINGECKO_IDS[denomStr] : "ethereum";
|
|
176
|
-
return [4, (0, _cryptoApi.getCryptoPrice)(String(coingeckoId), baseCurrency.toLowerCase())];
|
|
177
|
-
case 1:
|
|
178
|
-
price = _b.sent();
|
|
179
|
-
cellUpdates = [];
|
|
180
|
-
selectedCells.forEach(function (_a) {
|
|
181
|
-
var _b, _c, _d;
|
|
182
|
-
var row = _a.row,
|
|
183
|
-
col = _a.col;
|
|
184
|
-
var cell = (_b = flowdata[row]) === null || _b === void 0 ? void 0 : _b[col];
|
|
185
|
-
var baseValue = 0;
|
|
186
|
-
if ((cell === null || cell === void 0 ? void 0 : cell.baseValue) !== undefined) {
|
|
187
|
-
baseValue = cell.baseValue;
|
|
188
|
-
} else {
|
|
189
|
-
if (typeof (cell === null || cell === void 0 ? void 0 : cell.v) === "number") {
|
|
190
|
-
baseValue = cell.v;
|
|
191
|
-
} else if (typeof (cell === null || cell === void 0 ? void 0 : cell.v) === "string") {
|
|
192
|
-
baseValue = parseFloat(cell.v);
|
|
193
|
-
}
|
|
194
|
-
if (((_c = cell === null || cell === void 0 ? void 0 : cell.ct) === null || _c === void 0 ? void 0 : _c.fa) && cell.ct.fa.includes('"')) {
|
|
195
|
-
var numericValue = parseFloat(((_d = cell.v) === null || _d === void 0 ? void 0 : _d.toString()) || "0");
|
|
196
|
-
if (!Number.isNaN(numericValue)) {
|
|
197
|
-
baseValue = numericValue;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (!baseValue || Number.isNaN(baseValue)) return;
|
|
202
|
-
var cryptoValue = baseValue / price;
|
|
203
|
-
cellUpdates.push({
|
|
230
|
+
selections = context.luckysheet_select_save;
|
|
231
|
+
flowdata = (0, _fortuneCore.getFlowdata)(context);
|
|
232
|
+
if (!selections || !flowdata) return [2];
|
|
233
|
+
selectedCells = [];
|
|
234
|
+
selections.forEach(function (selection) {
|
|
235
|
+
for (var row = selection.row[0]; row <= selection.row[1]; row += 1) {
|
|
236
|
+
for (var col = selection.column[0]; col <= selection.column[1]; col += 1) {
|
|
237
|
+
selectedCells.push({
|
|
204
238
|
row: row,
|
|
205
|
-
col: col
|
|
206
|
-
baseValue: baseValue,
|
|
207
|
-
cryptoValue: cryptoValue
|
|
239
|
+
col: col
|
|
208
240
|
});
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
denomStr = typeof denomination === "string" && denomination.trim() !== "" ? denomination : "ETH";
|
|
245
|
+
denomStr = denomStr.toUpperCase();
|
|
246
|
+
coingeckoId = typeof COINGECKO_IDS[denomStr] === "string" ? COINGECKO_IDS[denomStr] : "ethereum";
|
|
247
|
+
cellUpdates = [];
|
|
248
|
+
selectedCells.forEach(function (_a) {
|
|
249
|
+
var _b, _c, _d, _e;
|
|
250
|
+
var row = _a.row,
|
|
251
|
+
col = _a.col;
|
|
252
|
+
var cell = (_b = flowdata[row]) === null || _b === void 0 ? void 0 : _b[col];
|
|
253
|
+
var baseValue = 0;
|
|
254
|
+
if ((cell === null || cell === void 0 ? void 0 : cell.baseValue) !== undefined) {
|
|
255
|
+
baseValue = cell.baseValue;
|
|
256
|
+
} else {
|
|
257
|
+
if (typeof (cell === null || cell === void 0 ? void 0 : cell.v) === "number") {
|
|
258
|
+
baseValue = cell.v;
|
|
259
|
+
} else if (typeof (cell === null || cell === void 0 ? void 0 : cell.v) === "string") {
|
|
260
|
+
baseValue = parseFloat(cell.v);
|
|
261
|
+
}
|
|
262
|
+
if (((_c = cell === null || cell === void 0 ? void 0 : cell.ct) === null || _c === void 0 ? void 0 : _c.fa) && cell.ct.fa.includes('"')) {
|
|
263
|
+
var numericValue = parseFloat(((_d = cell.v) === null || _d === void 0 ? void 0 : _d.toString()) || "0");
|
|
264
|
+
if (!Number.isNaN(numericValue)) {
|
|
265
|
+
baseValue = numericValue;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (!baseValue || Number.isNaN(baseValue)) return;
|
|
270
|
+
var fiatSymbol = (_e = cell === null || cell === void 0 ? void 0 : cell.m) === null || _e === void 0 ? void 0 : _e.split(" ")[0];
|
|
271
|
+
var fiatVsCryptoPrice = (0, _cryptoApi.getCachedPrice)(coingeckoId, getFiatGeckoId(fiatSymbol, cell === null || cell === void 0 ? void 0 : cell.baseCurrency));
|
|
272
|
+
var cryptoValue = baseValue / fiatVsCryptoPrice;
|
|
273
|
+
console.log(getFiatGeckoId(fiatSymbol, cell === null || cell === void 0 ? void 0 : cell.baseCurrency));
|
|
274
|
+
cellUpdates.push({
|
|
275
|
+
row: row,
|
|
276
|
+
col: col,
|
|
277
|
+
baseValue: baseValue,
|
|
278
|
+
cryptoValue: cryptoValue,
|
|
279
|
+
baseCurrency: getFiatGeckoId(fiatSymbol) || "usd"
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
setContext(function (ctx) {
|
|
283
|
+
var d = (0, _fortuneCore.getFlowdata)(ctx);
|
|
284
|
+
if (!d || !Array.isArray(d)) return;
|
|
285
|
+
cellUpdates.forEach(function (_a) {
|
|
286
|
+
var row = _a.row,
|
|
287
|
+
col = _a.col,
|
|
288
|
+
baseValue = _a.baseValue,
|
|
289
|
+
cryptoValue = _a.cryptoValue,
|
|
290
|
+
baseCurrency = _a.baseCurrency;
|
|
291
|
+
if (!d[row]) d[row] = [];
|
|
292
|
+
if (!d[row][col]) d[row][col] = {};
|
|
293
|
+
var cellCp = d[row][col];
|
|
294
|
+
cellCp.v = baseValue.toString();
|
|
295
|
+
cellCp.m = "".concat(cryptoValue.toFixed(decimals), " ").concat(denomStr);
|
|
296
|
+
cellCp.ct = {
|
|
297
|
+
fa: "0.".concat("0".repeat(decimals), " \"").concat(denomStr, "\""),
|
|
298
|
+
t: "n"
|
|
299
|
+
};
|
|
300
|
+
cellCp.baseValue = baseValue;
|
|
301
|
+
cellCp.baseCurrency = baseCurrency.toLowerCase();
|
|
302
|
+
d[row][col] = cellCp;
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
return [2];
|
|
233
306
|
});
|
|
234
307
|
});
|
|
235
308
|
}
|
package/lib/utils/cryptoApi.d.ts
CHANGED
package/lib/utils/cryptoApi.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.clearCryptoPriceCache = clearCryptoPriceCache;
|
|
7
|
+
exports.getCachedPrice = void 0;
|
|
7
8
|
exports.getCryptoPrice = getCryptoPrice;
|
|
8
9
|
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
9
10
|
function adopt(value) {
|
|
@@ -120,10 +121,10 @@ var __generator = void 0 && (void 0).__generator || function (thisArg, body) {
|
|
|
120
121
|
};
|
|
121
122
|
}
|
|
122
123
|
};
|
|
123
|
-
var COINGECKO_API = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd,eur,gbp,
|
|
124
|
+
var COINGECKO_API = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd,aed,ars,aud,bdt,bhd,bmd,brl,cad,chf,clp,cny,czk,dkk,eur,gbp,gel,hkd,huf,idr,ils,inr,jpy,krw,kwd,lkr,mmk,mxn,myr,ngn,nok,nzd,php,pkr,pln,rub,sar,sek,sgd,thb,try,twd,uah,vef,vnd,zar";
|
|
124
125
|
var CACHE_DURATION = 60 * 1000;
|
|
125
126
|
var CRYPTO_LIST = ["bitcoin", "ethereum", "solana"];
|
|
126
|
-
var FIAT_LIST = ["usd", "eur", "gbp", "
|
|
127
|
+
var FIAT_LIST = ["usd", "aed", "ars", "aud", "bdt", "bhd", "bmd", "brl", "cad", "chf", "clp", "cny", "czk", "dkk", "eur", "gbp", "gel", "hkd", "huf", "idr", "ils", "inr", "jpy", "krw", "kwd", "lkr", "mmk", "mxn", "myr", "ngn", "nok", "nzd", "php", "pkr", "pln", "rub", "sar", "sek", "sgd", "thb", "try", "twd", "uah", "vef", "vnd", "zar"];
|
|
127
128
|
var priceCache = {};
|
|
128
129
|
function updatePriceCache(data, timestamp) {
|
|
129
130
|
CRYPTO_LIST.forEach(function (crypto) {
|
|
@@ -162,6 +163,7 @@ function getCryptoPrice(crypto, fiat) {
|
|
|
162
163
|
return __generator(this, function (_b) {
|
|
163
164
|
switch (_b.label) {
|
|
164
165
|
case 0:
|
|
166
|
+
console.log("Fetching price for", crypto, fiat);
|
|
165
167
|
key = "".concat(crypto, "-").concat(fiat).toLowerCase();
|
|
166
168
|
now = Date.now();
|
|
167
169
|
if (priceCache[key] && now - priceCache[key].timestamp < CACHE_DURATION) {
|
|
@@ -184,6 +186,12 @@ function getCryptoPrice(crypto, fiat) {
|
|
|
184
186
|
});
|
|
185
187
|
});
|
|
186
188
|
}
|
|
189
|
+
var getCachedPrice = exports.getCachedPrice = function getCachedPrice(crypto, fiat) {
|
|
190
|
+
var _a;
|
|
191
|
+
var key = "".concat(crypto, "-").concat(fiat).toLowerCase();
|
|
192
|
+
getCryptoPrice(crypto, fiat);
|
|
193
|
+
return (_a = priceCache[key]) === null || _a === void 0 ? void 0 : _a.price;
|
|
194
|
+
};
|
|
187
195
|
function clearCryptoPriceCache() {
|
|
188
196
|
Object.keys(priceCache).forEach(function (key) {
|
|
189
197
|
return delete priceCache[key];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fileverse-dev/fortune-react",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.54",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"types": "lib/index.d.ts",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"tsc": "tsc"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@fileverse-dev/fortune-core": "1.0.
|
|
19
|
+
"@fileverse-dev/fortune-core": "1.0.54",
|
|
20
20
|
"@fileverse/ui": "^4.1.7-patch-16",
|
|
21
21
|
"@tippyjs/react": "^4.2.6",
|
|
22
22
|
"@types/regenerator-runtime": "^0.13.6",
|