React Data GridStatus Bar Panel
react logo
Enterprise

The Status Bar Panel allows you to add your own components to the grid's Status Bar. Use this when the provided status bar components do not meet your requirements.

Implementing a Status Bar Panel Component

To configure custom status bar panels, first enable the grid option reactiveCustomComponents.

When a status bar component is instantiated then the following will be made available on props.

Properties available on the CustomStatusPanelProps<TData = any, TContext = any> interface.

Enabling reactiveCustomComponents affects all custom components. If you have custom components built in an imperative way instead of setting the reactiveCustomComponents option, they may need to be rebuilt to take advantage of the new features that reactiveCustomComponents offers. Using custom components built in an imperative way is now deprecated, and in AG Grid v32 the reactiveCustomComponents option will be true by default. See Migrating to Use reactiveCustomComponents.

Configuring Status Bar Panels

In order to add new components to the Status Bar (or to configure the provided agAggregationComponent component) you need to provide the components and any associated information to statusBar:

<AgGridReact 
       statusBar: {{
           statusPanels: [
               {
                   statusPanel: MyStatusBarComponent
               },
               {
                   statusPanel: 'agAggregationComponent',
                   statusPanelParams : {
                       // only show count and sum ('min', 'max', 'avg' won't be shown)
                       aggFuncs: ['count', 'sum']
                   }
               }
           ]
       }}
       ...other props...
/>

In the configuration above we've specified a custom component (MyStatusBarComponent) as well as the provided agAggregationComponent component.

Order is important here - the order of the components provided will determine the order in which they're rendered, from left to right.

Initialisation of Status Bar Components

The status bar components will be instantiated before the grid is fully initialised - specifically they will be initialised before any row data has been rendered.

If you have a component that you wish to work on data once it's ready (calculate the sum of a column for example) then you'll need to hook into the modelUpdated event. Remember to remove the event listener when the component is destroyed.

const updateStatusBar = () => { ... }

  useEffect(() => {
    props.api.addEventListener('modelUpdated', updateStatusBar);

    // Remember to remove the event listener when the component is destroyed
    return () => {
        if (!props.api.isDestroyed()) {
            props.api.removeEventListener('modelUpdated', updateStatusBar);
        }
    }
  }, []);

Accessing Status Bar Panel Instances

After the grid has created an instance of a status bar component it is possible to access that instance. This is useful if you want to call a method that you provide on the status bar component that has nothing to do with the operation of the grid. Accessing a status bar component is done using the grid API getStatusPanel(key).

The instances returned by the grid will be wrapper components that match the provided grid status bar panel components. To get the React custom status bar panel component, the helper function getInstance can be used with this.

The example below shows using getStatusPanel: