hunk.code_window:   private async lock(resource: string, ttl: number): Promise<() => Promise<void>> {
       if (!this.distributedLock) {
         Logger.log(`Redlock was not started. Starting after calling lock ${resource} for ${ttl} ms`, LOG_CONTEXT);
         this.startup();
       }
       try {
  
hunk.labels: keep keep keep replace keep keep keep keep
hunk.after_edit:       shouldLog &&
           Logger.log(`Redlock was not started. Starting after calling lock ${resource} for ${ttl} ms`, LOG_CONTEXT);
  
hunk.file_path: apps/api/src/app/shared/services/distributed-lock/distributed-lock.service.ts
hunk.type: replace
file: import { css } from '@emotion/css';
  import { getStyleByPath, getDefaultTheme, getDefaultBellColors } from '@novu/notification-center';
  import type { NotificationCenterContentComponentProps } from '@novu/notification-center';
  
  export const calculateStyles = ({
    styles,
    theme: propsTheme,
    colorScheme,
  }: Pick<NotificationCenterContentComponentProps, 'theme' | 'styles' | 'colorScheme'>) => {
    const { theme, common } = getDefaultTheme({
      colorScheme,
      theme: propsTheme,
    });
    const { bellColors } = getDefaultBellColors({
      colorScheme,
      bellColors: {},
    });
  
    return {
      popoverArrowClass: css(
        getStyleByPath({
          styles,
          path: 'popover.arrow',
          theme,
          common,
          colorScheme,
        })
      ),
      popoverDropdownClass: css(
        getStyleByPath({
          styles,
          path: 'popover.dropdown',
          theme,
          common,
          colorScheme,
        })
      ),
      bellButtonClass: css(
        getStyleByPath({
          styles,
          path: 'bellButton.root',
          theme,
          common,
          colorScheme,
        })
      ),
      gradientDotClass: css(
        getStyleByPath({
          styles,
          path: 'bellButton.dot',
          theme,
          common,
          colorScheme,
        })
      ),
      bellColors,
    };
  };
  