show message when force update exchange rates data and the data is up to date
This commit is contained in:
@@ -36,6 +36,57 @@ function isBoolean(val) {
|
||||
return typeof(val) === 'boolean';
|
||||
}
|
||||
|
||||
function isEquals(obj1, obj2) {
|
||||
if (obj1 === obj2) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (isArray(obj1) && isArray(obj2)) {
|
||||
if (obj1.length !== obj2.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (let i = 0; i < obj1.length; i++) {
|
||||
if (!isEquals(obj1[i], obj2[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
} else if (isObject(obj1) && isObject(obj2)) {
|
||||
const keys1 = Object.keys(obj1);
|
||||
const keys2 = Object.keys(obj2);
|
||||
|
||||
if (keys1.length !== keys2.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const keyExistsMap2 = {};
|
||||
|
||||
for (let i = 0; i < keys2.length; i++) {
|
||||
const key = keys2[i];
|
||||
|
||||
keyExistsMap2[key] = true;
|
||||
}
|
||||
|
||||
for (let i = 0; i < keys1.length; i++) {
|
||||
const key = keys1[i];
|
||||
|
||||
if (!keyExistsMap2[key]) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!isEquals(obj1[key], obj2[key])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return obj1 === obj2;
|
||||
}
|
||||
}
|
||||
|
||||
function getUtcOffsetMinutesByUtcOffset(utcOffset) {
|
||||
if (!utcOffset) {
|
||||
return 0;
|
||||
@@ -677,6 +728,7 @@ export default {
|
||||
isString,
|
||||
isNumber,
|
||||
isBoolean,
|
||||
isEquals,
|
||||
getUtcOffsetMinutesByUtcOffset,
|
||||
getUtcOffsetByUtcOffsetMinutes,
|
||||
getTimezoneOffset,
|
||||
|
||||
@@ -1001,6 +1001,7 @@ export default {
|
||||
'No exchange rates data': 'No exchange rates data',
|
||||
'There is no exchange rates data for your default currency': 'There is no exchange rates data for your default currency',
|
||||
'Exchange rates data has been updated': 'Exchange rates data has been updated',
|
||||
'Exchange rates data is up to date': 'Exchange rates data is up to date',
|
||||
'Unable to get exchange rates data': 'Unable to get exchange rates data',
|
||||
'About': 'About',
|
||||
'Build Time': 'Build Time',
|
||||
|
||||
@@ -1001,6 +1001,7 @@ export default {
|
||||
'No exchange rates data': '没有汇率数据',
|
||||
'There is no exchange rates data for your default currency': '没有您默认货币的汇率数据',
|
||||
'Exchange rates data has been updated': '汇率数据已更新',
|
||||
'Exchange rates data is up to date': '汇率数据已是最新',
|
||||
'Unable to get exchange rates data': '无法获取汇率数据',
|
||||
'About': '关于',
|
||||
'Build Time': '编译时间',
|
||||
|
||||
@@ -35,6 +35,13 @@ export function getLatestExchangeRates(context, { silent, force }) {
|
||||
return;
|
||||
}
|
||||
|
||||
const currentData = getExchangeRatesFromLocalStorage();
|
||||
|
||||
if (currentData && currentData.data && utils.isEquals(currentData.data, data.result)) {
|
||||
reject({ message: 'Exchange rates data is up to date' });
|
||||
return;
|
||||
}
|
||||
|
||||
context.commit(STORE_LATEST_EXCHANGE_RATES, {
|
||||
time: now,
|
||||
data: data.result
|
||||
|
||||
Reference in New Issue
Block a user