blob: 6015b5349b8ed846574c5fff77e988fae6a9d434 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/intelligence/bwg/model/gemini_suggestion_handler.h"
#import "base/functional/bind.h"
#import "ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.h"
#import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h"
#import "ios/web/public/web_state.h"
@implementation GeminiSuggestionHandler {
// The associated WebStateList.
raw_ptr<WebStateList> _webStateList;
}
- (instancetype)initWithWebStateList:(WebStateList*)webStateList {
self = [super init];
if (self) {
_webStateList = webStateList;
}
return self;
}
#pragma mark - GeminiSuggestionDelegate
- (void)fetchZeroStateSuggestions:
(void (^)(NSArray<NSString*>* suggestions))completion {
web::WebState* webState = _webStateList->GetActiveWebState();
if (!webState) {
completion(nil);
return;
}
BwgTabHelper* tabHelper = BwgTabHelper::FromWebState(webState);
if (!tabHelper) {
completion(nil);
return;
}
tabHelper->ExecuteZeroStateSuggestions(
base::BindOnce(^(NSArray<NSString*>* suggestions) {
completion(suggestions);
}));
}
@end