Overview

A composable that offers the show reactive function. This function guarantees that something will be displayed at least for a specified duration after an initial trigger. This is typically used to prevent a jarring user experience when showing or hiding certain elements. For example, it can be used to ensure that a loader remains visible for a certain amount of time, even when the related data has already been loaded.

Usage

show(key, shouldShow, minVisibleTime)

      <div v-if="show('key-1', isLoading, minVisibleTime)">Loading...</div>
      <div v-else>Loaded!</div>
    

      import useKShow from 'kolibri-design-system/lib/composables/useKShow';

      export default {
        setup() {
          const { show } = useKShow();
          return { show };
        }
      };
    

Example

This is a simulation of a typical use-case of showing a loader while fetching data. You can set your own fetch request length and minimum visible time, and then hit the fetch button to see the output.


      <KTransition kind="component-fade-out-in">
        <KCircularLoader
          v-if="show('key-1', isFetching, minVisibleTime )"  
        />
        <div v-else>
          Loaded!
        </div>
      </KTransition>
    
Output:
Loaded!
isFetching: false minVisibleTime: 5000

Related

  • Some components offer a simpler interfance to achieve the same effect when there is no need to be switching between more components. For example, see KCircularLoader's minVisibleTime.

Parameters

Name Description Type Default Required
key
Each show function instance has to pass a key unique in the context of a whole page to this attribute
number|string true
shouldShow
Accurate, real-time information on whether something should be shown. For example, it should be set to false for a loader immediately after related data have finished loading.
boolean
minVisibleTime
For how long should show return true after an initial trigger
number

Returns

Type: boolean

Description: Returns true after shouldShow becomes truthy and keeps returning true for the duration of minVisibleTime (even when shouldShow changes back to falsy meanwhile). After minVisibleTime elapses and when shouldShow is falsy already, it returns false.