How to disable ripple globally?


Topic: How to disable ripple globally?

msantosdev pro premium priority asked 10 months ago

Expected behavior Disabled ripple effect in MDBSideNav (im trying to disable it per component as im unsure if there's a global toggle for ripple)

Actual behavior After trying few different methods the ripple effect still remains in MDBSideNav. I tried adding this attributes: 1. disableRipple 2. data-mdb-ripple-init="false" 3. noRipple

Resources (screenshots, code snippets etc.)


Mateusz Lazaru staff answered 10 months ago

Data attributes won't change the config in mdb react. Unfortunately, there is no way to disable the ripple effect in Sidenav-related components without modifying the source code.

You can either:

1- add a style to hide the ripple effect:

.your-sidenav .ripple-wave {
  display: none !important;
}

2- create and use a custom component:

import clsx from 'clsx';
import React, { useState, useEffect } from 'react';
import type { SideNavLinkProps } from 'src/pro/navigation/SideNav/SideNavLink/types';
import { MDBIcon } from 'mdb-react-ui-kit';

const SidenavLinkNoRipple: React.FC<SideNavLinkProps> = React.forwardRef<HTMLAnchorElement, SideNavLinkProps>(
  (
    {
      className,
      icon,
      iconClasses,
      iconAngle = 180,
      shouldBeExpanded,
      children,
      active,
      tag: Tag = 'a',
      color = 'primary',
      ...props
    },
    ref
  ) => {
    const classes = clsx('sidenav-link', active && 'active', className);
    const iconClass = clsx('rotate-icon', iconClasses);

    const [angle, setAngle] = useState(shouldBeExpanded ? iconAngle : 0);

    useEffect(() => {
      setAngle(shouldBeExpanded ? iconAngle : 0);
    }, [shouldBeExpanded, iconAngle]);

    return (
      <Tag
        onKeyDown={(e: any) => {
          if (e.key === 'Enter') {
            e.currentTarget.click();
          }
        }}
        tabIndex={1}
        className={classes}
        ref={ref}
        {...props}
      >
        {children}
        {icon && <MDBIcon icon={icon} style={{ transform: `rotate(${angle}deg)` }} className={iconClass} />}
      </Tag>
    );
  }
);

export default SidenavLinkNoRipple;

msantosdev pro premium priority answered 10 months ago

Cheers! Mateus! It worked.


Mateusz Lazaru staff commented 10 months ago

Glad to hear that!


Please insert min. 20 characters.

FREE CONSULTATION

Hire our experts to build a dedicated project. We'll analyze your business requirements, for free.

Status

Answered

Specification of the issue
  • User: Pro
  • Premium support: Yes
  • Technology: MDB React
  • MDB Version: MDB5 7.2.0
  • Device: Laptop
  • Browser: Chrome
  • OS: Windows
  • Provided sample code: No
  • Provided link: No