mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-30 12:23:58 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| //
 | |
| //  FLEXGlobalsSection.m
 | |
| //  FLEX
 | |
| //
 | |
| //  Created by Tanner Bennett on 7/11/19.
 | |
| //  Copyright © 2020 FLEX Team. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import "FLEXGlobalsSection.h"
 | |
| #import "NSArray+FLEX.h"
 | |
| #import "UIFont+FLEX.h"
 | |
| 
 | |
| @interface FLEXGlobalsSection ()
 | |
| /// Filtered rows
 | |
| @property (nonatomic) NSArray<FLEXGlobalsEntry *> *rows;
 | |
| /// Unfiltered rows
 | |
| @property (nonatomic) NSArray<FLEXGlobalsEntry *> *allRows;
 | |
| @end
 | |
| @implementation FLEXGlobalsSection
 | |
| 
 | |
| #pragma mark - Initialization
 | |
| 
 | |
| + (instancetype)title:(NSString *)title rows:(NSArray<FLEXGlobalsEntry *> *)rows {
 | |
|     FLEXGlobalsSection *s = [self new];
 | |
|     s->_title = title;
 | |
|     s.allRows = rows;
 | |
| 
 | |
|     return s;
 | |
| }
 | |
| 
 | |
| - (void)setAllRows:(NSArray<FLEXGlobalsEntry *> *)allRows {
 | |
|     _allRows = allRows.copy;
 | |
|     [self reloadData];
 | |
| }
 | |
| 
 | |
| #pragma mark - Overrides
 | |
| 
 | |
| - (NSInteger)numberOfRows {
 | |
|     return self.rows.count;
 | |
| }
 | |
| 
 | |
| - (void)setFilterText:(NSString *)filterText {
 | |
|     super.filterText = filterText;
 | |
|     [self reloadData];
 | |
| }
 | |
| 
 | |
| - (void)reloadData {
 | |
|     NSString *filterText = self.filterText;
 | |
|     
 | |
|     if (filterText.length) {
 | |
|         self.rows = [self.allRows flex_filtered:^BOOL(FLEXGlobalsEntry *entry, NSUInteger idx) {
 | |
|             return [entry.entryNameFuture() localizedCaseInsensitiveContainsString:filterText];
 | |
|         }];
 | |
|     } else {
 | |
|         self.rows = self.allRows;
 | |
|     }
 | |
| }
 | |
| 
 | |
| - (BOOL)canSelectRow:(NSInteger)row {
 | |
|     return YES;
 | |
| }
 | |
| 
 | |
| - (void (^)(__kindof UIViewController *))didSelectRowAction:(NSInteger)row {
 | |
|     return (id)self.rows[row].rowAction;
 | |
| }
 | |
| 
 | |
| - (UIViewController *)viewControllerToPushForRow:(NSInteger)row {
 | |
|     return self.rows[row].viewControllerFuture ? self.rows[row].viewControllerFuture() : nil;
 | |
| }
 | |
| 
 | |
| - (void)configureCell:(__kindof UITableViewCell *)cell forRow:(NSInteger)row {
 | |
|     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
 | |
|     cell.textLabel.font = UIFont.flex_defaultTableCellFont;
 | |
|     cell.textLabel.text = self.rows[row].entryNameFuture();
 | |
| }
 | |
| 
 | |
| @end
 | |
| 
 | |
| 
 | |
| @implementation FLEXGlobalsSection (Subscripting)
 | |
| 
 | |
| - (id)objectAtIndexedSubscript:(NSUInteger)idx {
 | |
|     return self.rows[idx];
 | |
| }
 | |
| 
 | |
| @end
 | 
