File tree 5 files changed +194
-20
lines changed
5 files changed +194
-20
lines changed Original file line number Diff line number Diff line change
1
+ {
2
+ "success" : true ,
3
+ "timestamp" : 1734360544 ,
4
+ "base" : " EUR" ,
5
+ "date" : " 2024-12-16" ,
6
+ "rates" : {
7
+ "AED" : 3.84895 ,
8
+ "AFN" : 73.33478 ,
9
+ "ALL" : 98.027938 ,
10
+ "AMD" : 411.569745 ,
11
+ "ANG" : 1.887477 ,
12
+ "AOA" : 956.102142 ,
13
+ "ARS" : 1069.146214 ,
14
+ "AUD" : 1.650772 ,
15
+ "AWG" : 1.886239 ,
16
+ "AZN" : 1.777667 ,
17
+ "BAM" : 1.952373 ,
18
+ "BBD" : 2.114589 ,
19
+ "BDT" : 125.14035 ,
20
+ "BGN" : 1.952174 ,
21
+ "BHD" : 0.39515 ,
22
+ "BIF" : 3095.566563 ,
23
+ "BMD" : 1.047911 ,
24
+ "BND" : 1.413719 ,
25
+ "BOB" : 7.262253 ,
26
+ "BRL" : 6.354952 ,
27
+ "BSD" : 1.047312 ,
28
+ "BTC" : 9.86446e-6 ,
29
+ "BTN" : 88.898562 ,
30
+ "BWP" : 14.247991 ,
31
+ "BYN" : 3.427184 ,
32
+ "BYR" : 20539.049207 ,
33
+ "BZD" : 2.110895 ,
34
+ "CAD" : 1.494577 ,
35
+ "CDF" : 3007.503434 ,
36
+ "CHF" : 0.937456 ,
37
+ "CLF" : 0.037345 ,
38
+ "CLP" : 1030.483873 ,
39
+ "CNY" : 7.633194 ,
40
+ "CNH" : 7.642286 ,
41
+ "COP" : 4525.496557 ,
42
+ "CRC" : 528.771883 ,
43
+ "CUC" : 1.047911 ,
44
+ "CUP" : 27.769633 ,
45
+ "CVE" : 110.071798 ,
46
+ "CZK" : 25.030708 ,
47
+ "DJF" : 186.48268 ,
48
+ "DKK" : 7.459253 ,
49
+ "DOP" : 63.571451 ,
50
+ "DZD" : 140.380845 ,
51
+ "EGP" : 53.237319 ,
52
+ "ERN" : 15.71866 ,
53
+ "ETB" : 132.933574 ,
54
+ "EUR" : 1 ,
55
+ "FJD" : 2.430891 ,
56
+ "FKP" : 0.829926 ,
57
+ "GBP" : 0.828625 ,
58
+ "GEL" : 2.944463 ,
59
+ "GGP" : 0.829926 ,
60
+ "GHS" : 15.393687 ,
61
+ "GIP" : 0.829926 ,
62
+ "GMD" : 75.449937 ,
63
+ "GNF" : 9044.125463 ,
64
+ "GTQ" : 8.067225 ,
65
+ "GYD" : 219.091263 ,
66
+ "HKD" : 8.148265 ,
67
+ "HNL" : 26.571628 ,
68
+ "HRK" : 7.516565 ,
69
+ "HTG" : 136.856315 ,
70
+ "HUF" : 409.199161 ,
71
+ "IDR" : 16790.725122 ,
72
+ "ILS" : 3.771651 ,
73
+ "IMP" : 0.829926 ,
74
+ "INR" : 88.960068 ,
75
+ "IQD" : 1371.957358 ,
76
+ "IRR" : 44103.941272 ,
77
+ "ISK" : 145.10473 ,
78
+ "JEP" : 0.829926 ,
79
+ "JMD" : 163.792506 ,
80
+ "JOD" : 0.743284 ,
81
+ "JPY" : 161.73241 ,
82
+ "KES" : 135.348202 ,
83
+ "KGS" : 91.165822 ,
84
+ "KHR" : 4208.612909 ,
85
+ "KMF" : 488.45739 ,
86
+ "KPW" : 943.11902 ,
87
+ "KRW" : 1506.560188 ,
88
+ "KWD" : 0.322515 ,
89
+ "KYD" : 0.872668 ,
90
+ "KZT" : 550.080727 ,
91
+ "LAK" : 22939.829831 ,
92
+ "LBP" : 93778.896295 ,
93
+ "LKR" : 304.490078 ,
94
+ "LRD" : 189.547301 ,
95
+ "LSL" : 18.759967 ,
96
+ "LTL" : 3.094208 ,
97
+ "LVL" : 0.633871 ,
98
+ "LYD" : 5.12201 ,
99
+ "MAD" : 10.450357 ,
100
+ "MDL" : 19.159371 ,
101
+ "MGA" : 4908.384647 ,
102
+ "MKD" : 61.470486 ,
103
+ "MMK" : 3403.572992 ,
104
+ "MNT" : 3560.800333 ,
105
+ "MOP" : 8.386819 ,
106
+ "MRU" : 41.574028 ,
107
+ "MUR" : 48.916714 ,
108
+ "MVR" : 16.137862 ,
109
+ "MWK" : 1815.912652 ,
110
+ "MXN" : 21.157075 ,
111
+ "MYR" : 4.665821 ,
112
+ "MZN" : 66.957096 ,
113
+ "NAD" : 18.759967 ,
114
+ "NGN" : 1616.32882 ,
115
+ "NIO" : 38.544185 ,
116
+ "NOK" : 11.72742 ,
117
+ "NPR" : 142.23734 ,
118
+ "NZD" : 1.818518 ,
119
+ "OMR" : 0.403362 ,
120
+ "PAB" : 1.047312 ,
121
+ "PEN" : 3.904733 ,
122
+ "PGK" : 4.239559 ,
123
+ "PHP" : 61.61507 ,
124
+ "PKR" : 291.246991 ,
125
+ "PLN" : 4.26281 ,
126
+ "PYG" : 8191.621805 ,
127
+ "QAR" : 3.817799 ,
128
+ "RON" : 4.97695 ,
129
+ "RSD" : 116.96566 ,
130
+ "RUB" : 108.827617 ,
131
+ "RWF" : 1438.048446 ,
132
+ "SAR" : 3.937233 ,
133
+ "SBD" : 8.785217 ,
134
+ "SCR" : 14.950965 ,
135
+ "SDG" : 630.31707 ,
136
+ "SEK" : 11.466673 ,
137
+ "SGD" : 1.416021 ,
138
+ "SHP" : 0.829926 ,
139
+ "SLE" : 23.909557 ,
140
+ "SLL" : 21974.166048 ,
141
+ "SOS" : 598.449582 ,
142
+ "SRD" : 36.89169 ,
143
+ "STD" : 21689.635225 ,
144
+ "SVC" : 9.162917 ,
145
+ "SYP" : 2632.90726 ,
146
+ "SZL" : 18.741105 ,
147
+ "THB" : 35.745312 ,
148
+ "TJS" : 11.414547 ,
149
+ "TMT" : 3.678166 ,
150
+ "TND" : 3.324124 ,
151
+ "TOP" : 2.454311 ,
152
+ "TRY" : 36.63454 ,
153
+ "TTD" : 7.111518 ,
154
+ "TWD" : 34.04246 ,
155
+ "TZS" : 2425.912998 ,
156
+ "UAH" : 43.747812 ,
157
+ "UGX" : 3822.290993 ,
158
+ "USD" : 1.047911 ,
159
+ "UYU" : 46.388577 ,
160
+ "UZS" : 13483.333624 ,
161
+ "VES" : 52.677635 ,
162
+ "VND" : 26611.691562 ,
163
+ "VUV" : 124.410054 ,
164
+ "WST" : 2.895155 ,
165
+ "XAF" : 654.801423 ,
166
+ "XAG" : 0.034256 ,
167
+ "XAU" : 0.000394 ,
168
+ "XCD" : 2.832031 ,
169
+ "XDR" : 0.798809 ,
170
+ "XOF" : 654.807661 ,
171
+ "XPF" : 119.331742 ,
172
+ "YER" : 262.370647 ,
173
+ "ZAR" : 18.742096 ,
174
+ "ZMK" : 9432.473646 ,
175
+ "ZMW" : 29.034039 ,
176
+ "ZWL" : 337.426809
177
+ }
178
+ }
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import React from 'react';
2
2
import Upload from './components/Upload' ;
3
3
import Setting from './components/Setting' ;
4
4
import Footer from './components/Footer' ;
5
+ import './config/exchangeRates' ;
5
6
6
7
function App ( ) {
7
8
return (
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ function Setting() {
10
10
const savedToken = localStorage . getItem ( 'openai_api_token' ) ;
11
11
const savedModel = localStorage . getItem ( 'selected_model' ) ;
12
12
const savedCurrency = localStorage . getItem ( 'currency' ) ;
13
-
13
+
14
14
if ( savedToken ) {
15
15
setApiToken ( savedToken ) ;
16
16
}
@@ -105,9 +105,11 @@ function Setting() {
105
105
onChange = { ( e ) => setCurrency ( e . target . value ) }
106
106
className = "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
107
107
>
108
- < option value = "USD" > USD (美元)</ option >
109
- < option value = "CNY" > CNY (人民币)</ option >
110
- < option value = "EUR" > EUR (欧元)</ option >
108
+ {
109
+ Object . keys ( window . exchangeRates ) . map ( ( currency ) => {
110
+ return < option value = { currency } key = { currency } > { currency } </ option >
111
+ } )
112
+ }
111
113
</ select >
112
114
</ div >
113
115
< div className = "flex justify-end space-x-3" >
Original file line number Diff line number Diff line change 1
1
import React , { useRef , useState } from 'react' ;
2
2
import logo from '../logo.png' ;
3
- import { exchangeRates , currencySymbols } from '../config/exchangeRates' ;
4
3
5
4
function Upload ( ) {
6
5
const [ file , setFile ] = useState ( null ) ;
@@ -147,8 +146,8 @@ function Upload() {
147
146
const minutes = Math . ceil ( durationInSeconds / 60 ) ;
148
147
const priceInUSD = minutes * 0.006 ;
149
148
const currency = localStorage . getItem ( 'currency' ) || 'USD' ;
150
- const rate = exchangeRates [ currency ] ;
151
- const symbol = currencySymbols [ currency ] ;
149
+ const rate = window . exchangeRates [ currency ] ;
150
+ const symbol = currency ;
152
151
return `${ symbol } ${ ( priceInUSD * rate ) . toFixed ( 3 ) } ` ;
153
152
} ;
154
153
Original file line number Diff line number Diff line change 1
- // 汇率配置(相对于美元)
2
- export const exchangeRates = {
3
- USD : 1 ,
4
- CNY : 7.2 , // 1 USD = 7.2 CNY
5
- EUR : 0.92 , // 1 USD = 0.92 EUR
6
- } ;
7
-
8
- // 货币符号
9
- export const currencySymbols = {
10
- USD : '$' ,
11
- CNY : '¥' ,
12
- EUR : '€' ,
13
- } ;
1
+ window . exchangeRates = { } ;
2
+ fetch ( 'exchange-rates.json' ) . then ( res => res . json ( ) ) . then ( data => {
3
+ const baseRate = data . rates [ 'USD' ] ;
4
+ Object . entries ( data . rates ) . forEach ( ( [ currency , rate ] ) => {
5
+ window . exchangeRates [ currency ] = + ( ( rate / baseRate ) . toFixed ( 5 ) ) ;
6
+ } ) ;
7
+ } ) ;
You can’t perform that action at this time.
0 commit comments