Sunday, May 3, 2020

Writing a calculator program using lwc and commonUtils javaScript class

Create a simple calculator using lwc and commonUtils class

calculator.html

<template>
    <lightning-card title="Calculator Example">
        Calculated value: {results}
        <lightning-input type="number" label="Enter first value" name="firstval" onchange={handleChange}></lightning-input>
        <lightning-input type="number" label="Enter second value" name="secondval" onchange={handleChange}></lightning-input>
        <br />
        <lightning-button-group>
            <lightning-button label="Add" icon-name="utility:add" onclick={handleAddition}></lightning-button>
            <lightning-button label="Subtract" onclick={handleSubtraction}></lightning-button>
            <lightning-button label="Multiply" onclick={handleMultiply}></lightning-button>
        </lightning-button-group>
    </lightning-card>
</template>

calculator.js

import { LightningElement, track } from 'lwc';
import { addition, subtraction, multiplication } from 'c/commonUtils';

export default class Calculator extends LightningElement {
    @track firstvalue = 0;
    @track secondvalue = 0;
    @track results = 0;

    handleChange(event){
        if(event.target.name === "firstval"){
            this.firstvalue = event.target.value;
        }else if(event.target.name === "secondval"){
            this.secondvalue = event.target.value;
        }
    }

    handleAddition(event){
        this.results = addition( parseInt(this.firstvalue),  parseInt(this.secondvalue));
    }

    handleSubtraction(event){
        this.results = subtraction( parseInt(this.firstvalue),  parseInt(this.secondvalue));
    }

    handleMultiply(event){
        this.results = multiplication( parseInt(this.firstvalue),  parseInt(this.secondvalue));
    }
}

calculator.js-meta.xml

<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>48.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
    </targets>
</LightningComponentBundle>

commonUtils.js


const addition = (firstval, secondval) => {
    if(firstval && secondval > 0){
        return firstval + secondval;
    }
    return 0;
};

const subtraction = (firstval, secondval) => {
    if(firstval && secondval > 0){
        return firstval - secondval;
    }
    return 0;
};

export function multiplication(firstval, secondval){
  return firstval * secondval;
};

export { addition, subtraction };