mirror of
https://github.com/Instagram/IGListKit
synced 2026-04-21 21:47:34 +00:00
Summary: It looks like D86316341 caused the GitHub unit tests to stop passing since SPM relies on IGListKit and IGListDiffKit being in the same directory so there are no module imports. This diff adds the same `__has_include` conditional checking so our internal and external module configurations will both work. Pull Request resolved: https://github.com/instagram/IGListKit/pull/1644 Test Plan: The external tests are working again. As long as the internal tests also pass, we should be good! {F1983488354} Reviewed By: m3rlin45 Differential Revision: D86943807 Pulled By: TimOliver fbshipit-source-id: c741acbb1f8425e92834daec720d4be3b3c264da
89 lines
2.2 KiB
Objective-C
89 lines
2.2 KiB
Objective-C
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#if !__has_include(<IGListDiffKit/IGListDiffKit.h>)
|
|
#import "IGListMoveIndexPath.h"
|
|
#else
|
|
#import <IGListDiffKit/IGListMoveIndexPath.h>
|
|
#endif
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
/**
|
|
A result object returned when diffing with sections.
|
|
*/
|
|
NS_SWIFT_NAME(ListIndexPathResult)
|
|
@interface IGListIndexPathResult : NSObject
|
|
|
|
/**
|
|
The index paths inserted into the new collection.
|
|
*/
|
|
@property (nonatomic, copy, readonly) NSArray<NSIndexPath *> *inserts;
|
|
|
|
/**
|
|
The index paths deleted from the old collection.
|
|
*/
|
|
@property (nonatomic, copy, readonly) NSArray<NSIndexPath *> *deletes;
|
|
|
|
/**
|
|
The index paths in the old collection that need updated.
|
|
*/
|
|
@property (nonatomic, copy, readonly) NSArray<NSIndexPath *> *updates;
|
|
|
|
/**
|
|
The moves from an index path in the old collection to an index path in the new collection.
|
|
*/
|
|
@property (nonatomic, copy, readonly) NSArray<IGListMoveIndexPath *> *moves;
|
|
|
|
/**
|
|
A Read-only boolean that indicates whether the result has any changes or not.
|
|
`YES` if the result has changes, `NO` otherwise.
|
|
*/
|
|
@property (nonatomic, assign, readonly) BOOL hasChanges;
|
|
|
|
/**
|
|
Returns the index path of the object with the specified identifier *before* the diff.
|
|
|
|
@param identifier The diff identifier of the object.
|
|
|
|
@return The index path of the object before the diff, or `nil`.
|
|
|
|
@see `-[IGListDiffable diffIdentifier]`.
|
|
*/
|
|
- (nullable NSIndexPath *)oldIndexPathForIdentifier:(id<NSObject>)identifier;
|
|
|
|
/**
|
|
Returns the index path of the object with the specified identifier *after* the diff.
|
|
|
|
@param identifier The diff identifier of the object.
|
|
|
|
@return The index path of the object after the diff, or `nil`.
|
|
|
|
@see `-[IGListDiffable diffIdentifier]`.
|
|
*/
|
|
- (nullable NSIndexPath *)newIndexPathForIdentifier:(id<NSObject>)identifier;
|
|
|
|
/**
|
|
Creates a new result object with operations safe for use in `UITableView` and `UICollectionView` batch updates.
|
|
*/
|
|
- (IGListIndexPathResult *)resultForBatchUpdates;
|
|
|
|
/**
|
|
:nodoc:
|
|
*/
|
|
- (instancetype)init NS_UNAVAILABLE;
|
|
|
|
/**
|
|
:nodoc:
|
|
*/
|
|
+ (instancetype)new NS_UNAVAILABLE;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|