//
//  MVMCoreUIPanelProtocol.h
//  mobilefirst
//
//  Created by Seshamani, Shreyas on 6/2/17.
//  Copyright © 2017 Verizon Wireless. All rights reserved.
//

#import <UIKit/UIKit.h>
@protocol MVMCoreUIPanelProtocol <NSObject>

#pragma mark - life cycle

@optional

// The panel can return if it should be available or not.
- (BOOL)panelAvailable;

// Notified when it is appearing and disappearing. Called by the container.
- (void)willOpenWithActionInformation:(nullable NSDictionary *)actionInformation additionalData:(nullable NSDictionary *)additionalData;
- (void)willAppear:(BOOL)animated;
- (void)didAppear:(BOOL)animated;
- (void)willDisappear:(BOOL)animated;
- (void)didDisappear:(BOOL)animated;

// Can overide to return the image to use for the standard panel button.
- (nonnull UIImage *)imageForButtonForPanel;

// Can overide to return the button to use for the panel. The selector should be the appropriate container selector otherwise the container will not work.
- (nonnull UIBarButtonItem *)buttonForPanel;

// Notifies the panel if it should show its close button or hide it. Depends on width of screen if automatic extension.
- (void)showArrow;
- (void)hideArrow;

/// The width to use if the panel is automatically extended when the screen is big enough.
- (CGFloat)panelExtendedWidth;

/// The maximum width of the panel.
- (CGFloat)panelMaxWidth;

// Gets called when we are restarting or clearing a session.
- (void)clearData;

- (void)resetIconToDefault;

@end
