chromium/ios/chrome/browser/ntp/ui_bundled/feed_menu_coordinator.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_NTP_UI_BUNDLED_FEED_MENU_COORDINATOR_H_
#define IOS_CHROME_BROWSER_NTP_UI_BUNDLED_FEED_MENU_COORDINATOR_H_

#import "ios/chrome/browser/shared/coordinator/chrome_coordinator/chrome_coordinator.h"
#import "ios/chrome/browser/ntp/ui_bundled/feed_menu_commands.h"

// An enum of all the Feed Menu item types.
enum class FeedMenuItemType {
  kTurnOff,
  kTurnOn,
  kManage,
  kManageActivity,
  kManageFollowing,
  kLearnMore,

  kMaxValue = kLearnMore,
};

// Defines callbacks that the FeedMenuCoordinator will send.
@protocol FeedMenuCoordinatorDelegate

// Called when a Feed Menu item is selected by the user.
- (void)didSelectFeedMenuItem:(FeedMenuItemType)item;

@end

// A coordinator which can display the Feed Menu and notify the delegate when
// an item is selected.
@interface FeedMenuCoordinator : ChromeCoordinator <FeedMenuCommands>

// A delegate to receive callbacks when a Feed Menu item is selected.
@property(nonatomic, weak) id<FeedMenuCoordinatorDelegate> delegate;

@end

#endif  // IOS_CHROME_BROWSER_NTP_UI_BUNDLED_FEED_MENU_COORDINATOR_H_