76 lines
3.2 KiB
Swift
76 lines
3.2 KiB
Swift
//
|
|
// Copyright (c) 2018 Touch Instinct
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the Software), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
// THE SOFTWARE.
|
|
//
|
|
|
|
/// PaginationWrapper UI delegate used for customization
|
|
/// of bound states (loading, empty, error, etc.).
|
|
public protocol PaginationWrapperUIDelegate: AnyObject {
|
|
|
|
/// Returns placeholder view for empty state.
|
|
///
|
|
/// - Returns: Configured instace of UIView.
|
|
func emptyPlaceholder() -> UIView?
|
|
|
|
/// Called when initial loading error is occured.
|
|
/// It should return true if error is handled and false if it doesn't.
|
|
///
|
|
/// - Parameters:
|
|
/// - error: Error that occured due data loading.
|
|
/// - Returns: Bool value. If true - then error placeholder wouldn't be shown.
|
|
func customInitialLoadingErrorHandling(for error: Error) -> Bool
|
|
|
|
/// Returns placeholder view for error state.
|
|
///
|
|
/// - Parameters:
|
|
/// - error: Error that occured due data loading.
|
|
/// - Returns: Configured instace of UIView.
|
|
func errorPlaceholder(for error: Error) -> UIView?
|
|
|
|
/// Returns loading idicator for initial loading state.
|
|
/// This indicator will appear at center of the placeholders container.
|
|
///
|
|
/// - Returns: Configured instace of AnyLoadingIndicator.
|
|
func initialLoadingIndicator() -> AnyLoadingIndicator?
|
|
|
|
/// Returns loading idicator for initial loading state.
|
|
///
|
|
/// - Returns: Configured instace of AnyLoadingIndicator.
|
|
func loadingMoreIndicator() -> AnyLoadingIndicator?
|
|
|
|
/// Returns instance of ButtonHolderView with retry button for "retry load more" action.
|
|
///
|
|
/// - Returns: Configured instace of AnyLoadingIndicator.
|
|
func footerRetryView() -> ButtonHolderView?
|
|
|
|
/// Returns height for "retry load more" button.
|
|
///
|
|
/// - Returns: Height of "retry load more" button.
|
|
func footerRetryViewHeight() -> CGFloat
|
|
|
|
/// Method is called before "retry load more" will be shown.
|
|
/// Typically, it's used when you need to show custom footer view.
|
|
func footerRetryViewWillAppear()
|
|
|
|
/// Method is called before "retry load more" will be hidden.
|
|
/// Typically, it's used when you need to hide custom footer view.
|
|
func footerRetryViewWillDisappear()
|
|
}
|