hunk.code_window:   function handleDelete(index: number) {
       remove(index);
     }
     const onApplyConditions = async () => {
       await trigger('conditions');
  
hunk.labels: keep keep keep keep add keep keep
hunk.after_edit:   /** Flag for determining if conditions are empty but expected not to be */
     const hasDisallowedEmptyConditions = Boolean(
       shouldDisallowEmptyConditions && getValues().conditions?.some(({ children }) => !children?.[0])
     );
     const isSubmitDisabled =
       !isDirty || isReadonly || (conditions?.length === 0 && fields?.length === 0) || hasDisallowedEmptyConditions;
  
hunk.file_path: apps/web/src/components/conditions/Conditions.tsx
hunk.type: add
file: import { novuInAppConfig } from '../credentials';
  
  import { InAppProviderIdEnum } from '../provider.enum';
  import { IProviderConfig } from '../provider.interface';
  
  import { ChannelTypeEnum } from '../../../types';
  
  export const inAppProviders: IProviderConfig[] = [
    {
      id: InAppProviderIdEnum.Novu,
      displayName: 'Novu In-App',
      channel: ChannelTypeEnum.IN_APP,
      credentials: novuInAppConfig,
      docReference: 'https://docs.novu.co/notification-center/introduction',
      logoFileName: { light: 'novu.png', dark: 'novu.png' },
    },
  ];
  