hunk.code_window: import { ScreensEnum } from '../Layout';
   export function Header({ unseenCount, setScreen }: { unseenCount: number; setScreen: (screen: ScreensEnum) => void }) {
     const { theme, common } = useNovuThemeProvider();
     const { tabs } = useContext<INotificationCenterContext>(NotificationCenterContext);
     const { t } = useTranslations();
     return (
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit:   const { tabs, showUserPreferences } = useContext<INotificationCenterContext>(NotificationCenterContext);
  
hunk.file_path: packages/notification-center/src/components/notification-center/components/layout/header/Header.tsx
hunk.type: replace
file: import { Injectable } from '@nestjs/common';
  import { PassportStrategy } from '@nestjs/passport';
  import * as githubPassport from 'passport-github2';
  import { Metadata, StateStoreStoreCallback, StateStoreVerifyCallback } from 'passport-oauth2';
  import { AuthProviderEnum } from '@novu/shared';
  import { AuthService } from '../auth.service';
  
  @Injectable()
  export class GithubStrategy extends PassportStrategy(githubPassport.Strategy, 'github') {
    constructor(private authService: AuthService) {
      super({
        clientID: process.env.GITHUB_OAUTH_CLIENT_ID,
        clientSecret: process.env.GITHUB_OAUTH_CLIENT_SECRET,
        callbackURL: process.env.GITHUB_OAUTH_REDIRECT,
        scope: ['user:email'],
        passReqToCallback: true,
        store: {
          verify(req, state: string, meta: Metadata, callback: StateStoreVerifyCallback) {
            callback(null, true, JSON.stringify(req.query));
          },
          store(req, meta: Metadata, callback: StateStoreStoreCallback) {
            callback(null, JSON.stringify(req.query));
          },
        },
      });
    }
  
    async validate(req, accessToken: string, refreshToken: string, githubProfile, done: (err, data) => void) {
      try {
        const profile = { ...githubProfile._json, email: githubProfile.emails[0].value };
        const response = await this.authService.authenticate(
          AuthProviderEnum.GITHUB,
          accessToken,
          refreshToken,
          profile,
          this.parseState(req)?.distinctId
        );
  
        done(null, {
          token: response.token,
          newUser: response.newUser,
        });
      } catch (err) {
        done(err, false);
      }
    }
  
    private parseState(req) {
      try {
        return JSON.parse(req.query.state);
      } catch (e) {
        return {};
      }
    }
  }
  