Skip to main content

Utils

The sdk.utils object provides a wide range of utility functions that help you build dynamic, user-friendly, and responsive views inside GridStudio. These include formatting, file uploading, timers, role checks, notifications, and more.


Categories

Formatting

  • formatDate(date) – Returns a formatted date string.
  • formatDateTime(date) – Returns a full date-time string.
  • formatDateTimeLocal(date) – Returns locale-aware date-time string.
  • currency.priceString(isoCode, price, options) – Formats a price with currency.

HTML/Serialization

  • slugify(string) – Converts a string into a URL-safe slug.
  • serialize(obj) – Serializes an object into a string.
  • deserialize(string) – Converts a serialized string back into an object.

Loading State

  • loading.show() – Blocks the view with a loading spinner.
  • loading.remove() – Removes the loading overlay.

Uploads

  • uploadAsync(dropzone) – Uploads files from a dropzone and returns their URLs.
  • uploadFileAsync(file) – Uploads a single file.
  • getSignedFileUrl() – Retrieves a secure file URL.

QR Codes

  • generateQrCodeAsync({ data }) – Returns a QR code image in base64 for given input.

Drawer

  • drawer.show({...}) – Opens a drawer with specified custom function.
  • drawer.hide() – Hides the currently opened drawer.
  • drawer.close() – Closes the drawer fully.

Notifications

  • notify.success(message) – Shows a success toast.
  • notify.failure(message) – Shows a failure/error toast.

Confirmation Dialog

  • confirmation({ title, text }, onConfirm, onCancel) – Opens a confirm dialog.

Refresh Tokens

  • setRefreshToken(key) – Triggers a refresh for a key.
  • listenRefreshToken(key) – Listens reactively for changes to a refresh key.

Reactive and Timer Helpers

  • autorun(fn) – Tracks reactive data sources and reruns the function.
  • nonreactive(fn) – Executes a function without reactivity.
  • setTimeout(fn, ms) – Delays execution.
  • clearTimeout(timer) – Clears a timeout.
  • setInterval(fn, ms) – Repeats execution at intervals.
  • clearInterval(timer) – Clears an interval.

Role Check Utilities

  • roles.userIsInRole(roles) – Checks if user is in given roles (sync).
  • roles.userIsInRoleAsync(roles) – Checks roles (async).
  • roles.userIsInParentRole(roles) – Checks for parent tenant role.
  • roles.userIsInRootRole(roles) – Checks for root-level role.
  • roles.userIsInParentRoleAsync(roles) – Async parent role check.
  • roles.userIsInRootRoleAsync(roles) – Async root role check.

Logging

  • logger.info(...args) – Console info.
  • logger.warn(...args) – Console warning.
  • logger.error(...args) – Console error.
  • logger.debug(...args) – Console debug.

Other

  • translate('i18n.key') – Translates a string using i18n keys.
  • absoluteUrl(path) – Returns absolute URL for a path.
  • absolutePathString(name) – Converts a relative path to full path string.
  • random.id() – Generates a random ID string.

Example: Upload + Notify

const files = await sdk.utils.uploadAsync(dropzone)
if (files.length > 0) {
sdk.utils.notify.success('Files uploaded successfully!')
}