running-tools

A collection of tools for runners and their coaches
git clone https://git.ashermorgan.net/running-tools/
Log | Files | Refs | README

commit e784e4c8f3baeaeb0b721ff78336864a673fbb41
parent 34bbd4765534d78127220eee1d34b2281aaefad5
Author: ashermorgan <59518073+ashermorgan@users.noreply.github.com>
Date:   Sun, 14 Nov 2021 16:05:56 -0800

Save unit calculator data to localStorage

Diffstat:
Msrc/views/UnitCalculator.vue | 99++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 86 insertions(+), 13 deletions(-)

diff --git a/src/views/UnitCalculator.vue b/src/views/UnitCalculator.vue @@ -3,7 +3,7 @@ <select class="category" v-model="category"> <option value="distance">Distance</option> <option value="time">Time</option> - <option value="speed_and_pace">Speed & Pace</option> + <option value="speed_and_pace">Speed &amp; Pace</option> </select> <time-input v-if="getUnitType(inputUnit) === 'time'" class="input-value" @@ -35,6 +35,7 @@ </template> <script> +import storage from '@/utils/localStorage'; import unitUtils from '@/utils/units'; import DecimalInput from '@/components/DecimalInput.vue'; @@ -53,17 +54,17 @@ export default { /** * The input value */ - inputValue: 1.0, + inputValue: storage.get('unit-calculator-distance-input-value', 1.0), /** * The unit of the input */ - inputUnit: 'miles', + inputUnit: storage.get('unit-calculator-distance-input-unit', 'miles'), /** * The unit of the output */ - outputUnit: 'kilometers', + outputUnit: storage.get('unit-calculator-distance-output-unit', 'kilometers'), /** * The unit category @@ -138,21 +139,93 @@ export default { category(newValue) { switch (newValue) { case 'distance': { - this.inputValue = 1; - this.inputUnit = 'miles'; - this.outputUnit = 'kilometers'; + this.inputValue = storage.get('unit-calculator-distance-input-value', 1); + this.inputUnit = storage.get('unit-calculator-distance-input-unit', 'miles'); + this.outputUnit = storage.get('unit-calculator-distance-output-unit', 'kilometers'); break; } case 'time': { - this.inputValue = 1; - this.inputUnit = 'seconds'; - this.outputUnit = 'hh:mm:ss'; + this.inputValue = storage.get('unit-calculator-time-input-value', 1); + this.inputUnit = storage.get('unit-calculator-time-input-unit', 'seconds'); + this.outputUnit = storage.get('unit-calculator-time-ouput-unit', 'hh:mm:ss'); break; } case 'speed_and_pace': { - this.inputValue = unitUtils.getDefaultPaceUnit() === 'seconds_per_mile' ? 600 : 300; - this.inputUnit = unitUtils.getDefaultPaceUnit(); - this.outputUnit = unitUtils.getDefaultSpeedUnit(); + this.inputValue = storage.get('unit-calculator-speed-input-value', + unitUtils.getDefaultPaceUnit() === 'seconds_per_mile' ? 600 : 300); + this.inputUnit = storage.get('unit-calculator-speed-input-unit', + unitUtils.getDefaultPaceUnit()); + this.outputUnit = storage.get('unit-calculator-speed-output-unit', + unitUtils.getDefaultSpeedUnit()); + break; + } + default: { + break; + } + } + }, + + /** + * Save input value + */ + inputValue(newValue) { + switch (this.category) { + case 'distance': { + storage.set('unit-calculator-distance-input-value', newValue); + break; + } + case 'time': { + storage.set('unit-calculator-time-input-value', newValue); + break; + } + case 'speed_and_pace': { + storage.set('unit-calculator-speed-input-value', newValue); + break; + } + default: { + break; + } + } + }, + + /** + * Save input unit + */ + inputUnit(newValue) { + switch (this.category) { + case 'distance': { + storage.set('unit-calculator-distance-input-unit', newValue); + break; + } + case 'time': { + storage.set('unit-calculator-time-input-unit', newValue); + break; + } + case 'speed_and_pace': { + storage.set('unit-calculator-speed-input-unit', newValue); + break; + } + default: { + break; + } + } + }, + + /** + * Save output unit + */ + outputUnit(newValue) { + switch (this.category) { + case 'distance': { + storage.set('unit-calculator-distance-output-unit', newValue); + break; + } + case 'time': { + storage.set('unit-calculator-time-output-unit', newValue); + break; + } + case 'speed_and_pace': { + storage.set('unit-calculator-speed-output-unit', newValue); break; } default: {