JSFiddle - React, Tailwind, and code Playground

by leongaban

JavaScript

(function() { "use strict";

    angular.module('tagDetailsFactory', [])

    .factory('TagDetailsFactory', [
        '$rootScope',
        'ApiFactory',
        'ScopeFactory',
        function($rootScope,
                 ApiFactory,
                 ScopeFactory) {

        // Init ScopeFactory:
        // ------------------
        var tagsHover = {};
        var callbacks;

        return {
            saveTagDetails      : saveTagDetails,
            registerTagCallback : registerTagCallback,
        };

        ////////////////////////////////////////////////////////////////////////

        function saveTagDetails(ticker, tag) {

            if (tag.percent != undefined) {
                var conditional = tag.percent.toString().charAt(0);
                tag.direction = returnDirection(conditional);
            }

            function floorFigure(figure, decimals) {
                if (!decimals) decimals = 2;
                var d = Math.pow(10, decimals);
                return (parseInt(figure * d)/d).toFixed(decimals);
            };

            ApiFactory.getTagData(ticker, tag.term_id).then(function(data) {

                var increase  = 0;
                var direction = tag.week_quantity > tag.previous_week_quantity ? 'positive' : 'negative';

                // Algorithm to get percentage change:
                increase = tag.week_quantity - tag.previous_week_quantity;
                increase = increase / tag.previous_week_quantity * 100;
                increase = floorFigure(increase, 2);
                    
                if (data.data.status === "Failure") {
                    tag.tickers = [];
                } else {
                    tag.tickers = data.data.ticker_tag.tickers;
                }

                tag.tweet_percentage = increase;
                // tagsHover = ScopeFactory.getScope('tagsHover');
                // tagsHover.hoveringTag(tag);

                registerTagCallback(tag, 'tagsHover');
            });
  ...