Skip to main content

Utilities & Helpers

High-level overview of utility functions and helper modules available in AquaGen.


Overview

AquaGen provides 20+ utility modules for common operations.

Location: libs/shared/src/utils/ and libs/shared/src/helper/


Date & Time Utilities

dateFormatter.js

Purpose: Format dates for display

Functions:

  • formatDate() - Format date strings
  • formatTime() - Format time
  • getDateRange() - Calculate date ranges

Usage:

import { formatDate } from '@aquagen-mf-webapp/shared/utils';

const formatted = formatDate(new Date(), 'DD/MM/YYYY');

datePickerUtil.js

Purpose: Date picker helper functions

Functions:

  • Date range validation
  • Calendar utilities
  • Date selection helpers

Data Formatting

formatter.js

Purpose: General data formatting

Functions:

  • formatNumber() - Format numbers with commas
  • formatCurrency() - Format currency
  • formatPercentage() - Format percentages
  • roundNumber() - Round to decimals

numberUtils.js

Purpose: Number operations

Functions:

  • Number validation
  • Number conversion
  • Precision handling

Graph & Chart Utilities

graphData.js

Purpose: Prepare data for charts

Functions:

  • Transform API data to chart format
  • Calculate graph points
  • Data aggregation

graphUtil.js

Purpose: Graph-specific utilities

Functions:

  • Chart configuration
  • Color schemes
  • Graph legends

labelData.js

Purpose: Generate chart labels

Functions:

  • X-axis labels
  • Y-axis labels
  • Legend labels

Purpose: Navigation utilities

Functions:

  • handleNavigationOnResponse() - Navigate after API response
  • Route validation
  • Navigation guards

Usage:

import { handleNavigationOnResponse } from '@aquagen-mf-webapp/shared/utils';

handleNavigationOnResponse(response, setLoginData, setCategory, navigate);

Purpose: Navigation helper singleton

Functions:

  • navigate() - Programmatic navigation
  • goBack() - Navigate back
  • Route management

Download Utilities

downloadUtil.js

Purpose: File download helpers

Functions:

  • downloadCSV() - Download CSV files
  • downloadPDF() - Download PDF reports
  • downloadExcel() - Download Excel files
  • downloadImage() - Download images

Usage:

import { downloadCSV } from '@aquagen-mf-webapp/shared/utils';

downloadCSV(data, 'report.csv');

Validation Utilities

urlValidator.js

Purpose: URL validation

Functions:

  • isValidUrl() - Check if URL is valid
  • sanitizeUrl() - Clean URL

otpLoginChecks.js

Purpose: OTP login validation

Functions:

  • numberCheck() - Validate phone number
  • otpCheck() - Validate OTP
  • lengthCheck() - Check input length

Helper Instances

alertHelperInstance.js

Purpose: Alert management helper

Functions:

  • Alert filtering
  • Alert sorting
  • Alert categorization

subscriptionHelper.js

Purpose: Subscription management

Functions:

  • calculateSubscriptionData() - Calculate subscription status
  • Check expiry
  • Handle subscription states

energyNavigationHelperInstance.js

Purpose: Energy module navigation

Functions:

  • Energy route management
  • Energy category navigation

executiveNavigationHelperInstance.js

Purpose: Executive dashboard navigation

Functions:

  • Leadership route management
  • Executive views

Notification Utilities

notificationUtil.js

Purpose: Browser notifications

Functions:

  • checkAndGetNotificationPermission() - Request permission
  • sendNotification() - Show notification
  • handleNotificationClick() - Click handlers

Parameter Utilities

getParams.js

Purpose: URL parameter extraction

Functions:

  • getQueryParams() - Get URL query params
  • getPathParams() - Get path parameters

paramHelper.js

Purpose: Parameter management

Functions:

  • Parameter validation
  • Parameter transformation
  • Default values

Search Utilities

searchOptionSelectUtils.js

Purpose: Search and filter helpers

Functions:

  • Search option filtering
  • Multi-select utilities
  • Search results formatting

Specialized Utilities

RwiHelper.js

Purpose: Rain Water Index calculations

Functions:

  • RWI formula calculations
  • RWI data processing

barClick.js

Purpose: Chart interaction handlers

Functions:

  • Handle bar chart clicks
  • Navigate from charts
  • Chart drill-down

helperUtil.js

Purpose: General helper functions

Functions:

  • Common operations
  • Reusable utilities
  • Data transformations

Custom Hooks

Location: libs/shared/src/hooks/

useQueryParams

Purpose: Access URL query parameters

import { useQueryParams } from '@aquagen-mf-webapp/shared/hooks';

const { filter, sort } = useQueryParams();

useNavigateSearch

Purpose: Navigate with query params

import { useNavigateSearch } from '@aquagen-mf-webapp/shared/hooks';

const navigateSearch = useNavigateSearch();
navigateSearch('/dashboard', { view: 'graph' });

useScrollToElement

Purpose: Scroll to specific element

import { useScrollToElement } from '@aquagen-mf-webapp/shared/hooks';

const scrollTo = useScrollToElement();
scrollTo('section-id');

useLineGraphToggle

Purpose: Toggle line graph visibility

import { useLineGraphToggle } from '@aquagen-mf-webapp/shared/hooks';

const { visible, toggle } = useLineGraphToggle();

Common Patterns

1. Date Formatting

import { formatDate } from '@aquagen-mf-webapp/shared/utils';

const displayDate = formatDate(apiDate, 'DD MMM YYYY');

2. Number Formatting

import { formatNumber } from '@aquagen-mf-webapp/shared/utils';

const display = formatNumber(12345.67, 2); // "12,345.67"

3. File Download

import { downloadCSV } from '@aquagen-mf-webapp/shared/utils';

const handleDownload = () => {
downloadCSV(tableData, 'water-report.csv');
};

4. Navigation

import { navHelperInstance } from '@aquagen-mf-webapp/shared/helper';

navHelperInstance.navigate('/dashboard');
navHelperInstance.goBack();

Best Practices

  1. Import from shared - Don't duplicate utilities
  2. Use helpers - Reuse existing functions
  3. Keep DRY - Don't repeat code
  4. Follow patterns - Use established utilities
  5. Document custom utils - Add comments

Next Steps


Last Updated: February 2026