import ExpoModulesCore public class T3ReviewDiffModule: Module { public func definition() -> ModuleDefinition { Name("T3ReviewDiffSurface") View(T3ReviewDiffView.self) { Prop("tokensResetKey") { (view: T3ReviewDiffView, tokensResetKey: String) in view.setTokensResetKey(tokensResetKey) } Prop("contentResetKey") { (view: T3ReviewDiffView, contentResetKey: String) in view.setContentResetKey(contentResetKey) } Prop("collapsedFileIdsJson") { (view: T3ReviewDiffView, collapsedFileIdsJson: String) in view.setCollapsedFileIdsJson(collapsedFileIdsJson) } Prop("viewedFileIdsJson") { (view: T3ReviewDiffView, viewedFileIdsJson: String) in view.setViewedFileIdsJson(viewedFileIdsJson) } Prop("selectedRowIdsJson") { (view: T3ReviewDiffView, selectedRowIdsJson: String) in view.setSelectedRowIdsJson(selectedRowIdsJson) } Prop("collapsedCommentIdsJson") { (view: T3ReviewDiffView, collapsedCommentIdsJson: String) in view.setCollapsedCommentIdsJson(collapsedCommentIdsJson) } Prop("appearanceScheme") { (view: T3ReviewDiffView, appearanceScheme: String) in view.setAppearanceScheme(appearanceScheme) } Prop("themeJson") { (view: T3ReviewDiffView, themeJson: String) in view.setThemeJson(themeJson) } Prop("styleJson") { (view: T3ReviewDiffView, styleJson: String) in view.setStyleJson(styleJson) } Prop("rowHeight") { (view: T3ReviewDiffView, rowHeight: Double) in view.setRowHeight(CGFloat(rowHeight)) } Prop("contentWidth") { (view: T3ReviewDiffView, contentWidth: Double) in view.setContentWidth(CGFloat(contentWidth)) } Prop("initialRowIndex") { (view: T3ReviewDiffView, initialRowIndex: Double) in view.setInitialRowIndex(initialRowIndex) } Prop("refreshing") { (view: T3ReviewDiffView, refreshing: Bool) in view.setRefreshing(refreshing) } Events( "onDebug", "onVisibleFileChange", "onToggleFile", "onToggleViewedFile", "onPressLine", "onToggleComment", "onPullToRefresh" ) AsyncFunction("scrollToFile") { (view: T3ReviewDiffView, fileId: String, animated: Bool) in view.scrollToFile(fileId, animated: animated) } AsyncFunction("scrollToTop") { (view: T3ReviewDiffView, animated: Bool) in view.scrollToTop(animated: animated) } // Large, frequently changing JSON values cannot be regular Fabric props. Expo's // prop adapter compares strings on the main thread before invoking a setter, which // makes a syntax-token patch capable of blocking a frame by itself. AsyncFunction("setRowsJson") { (view: T3ReviewDiffView, rowsJson: String) in view.setRowsJson(rowsJson) } AsyncFunction("setTokensJson") { (view: T3ReviewDiffView, tokensJson: String) in view.setTokensJson(tokensJson) } AsyncFunction("setTokensPatchJson") { (view: T3ReviewDiffView, tokensPatchJson: String) in view.setTokensPatchJson(tokensPatchJson) } } }}
import ExpoModulesCore
public class T3ReviewDiffModule: Module {
public func definition() -> ModuleDefinition {
Name("T3ReviewDiffSurface")
View(T3ReviewDiffView.self) {
Prop("tokensResetKey") { (view: T3ReviewDiffView, tokensResetKey: String) in
view.setTokensResetKey(tokensResetKey)
}
Prop("contentResetKey") { (view: T3ReviewDiffView, contentResetKey: String) in
view.setContentResetKey(contentResetKey)
}
Prop("collapsedFileIdsJson") { (view: T3ReviewDiffView, collapsedFileIdsJson: String) in
view.setCollapsedFileIdsJson(collapsedFileIdsJson)
}
Prop("viewedFileIdsJson") { (view: T3ReviewDiffView, viewedFileIdsJson: String) in
view.setViewedFileIdsJson(viewedFileIdsJson)
}
Prop("selectedRowIdsJson") { (view: T3ReviewDiffView, selectedRowIdsJson: String) in
view.setSelectedRowIdsJson(selectedRowIdsJson)
}
Prop("collapsedCommentIdsJson") { (view: T3ReviewDiffView, collapsedCommentIdsJson: String) in
view.setCollapsedCommentIdsJson(collapsedCommentIdsJson)
}
Prop("appearanceScheme") { (view: T3ReviewDiffView, appearanceScheme: String) in
view.setAppearanceScheme(appearanceScheme)
}
Prop("themeJson") { (view: T3ReviewDiffView, themeJson: String) in
view.setThemeJson(themeJson)
}
Prop("styleJson") { (view: T3ReviewDiffView, styleJson: String) in
view.setStyleJson(styleJson)
}
Prop("rowHeight") { (view: T3ReviewDiffView, rowHeight: Double) in
view.setRowHeight(CGFloat(rowHeight))
}
Prop("contentWidth") { (view: T3ReviewDiffView, contentWidth: Double) in
view.setContentWidth(CGFloat(contentWidth))
}
Prop("initialRowIndex") { (view: T3ReviewDiffView, initialRowIndex: Double) in
view.setInitialRowIndex(initialRowIndex)
}
Prop("refreshing") { (view: T3ReviewDiffView, refreshing: Bool) in
view.setRefreshing(refreshing)
}
Events(
"onDebug",
"onVisibleFileChange",
"onToggleFile",
"onToggleViewedFile",
"onPressLine",
"onToggleComment",
"onPullToRefresh"
)
AsyncFunction("scrollToFile") { (view: T3ReviewDiffView, fileId: String, animated: Bool) in
view.scrollToFile(fileId, animated: animated)
}
AsyncFunction("scrollToTop") { (view: T3ReviewDiffView, animated: Bool) in
view.scrollToTop(animated: animated)
}
// Large, frequently changing JSON values cannot be regular Fabric props. Expo's
// prop adapter compares strings on the main thread before invoking a setter, which
// makes a syntax-token patch capable of blocking a frame by itself.
AsyncFunction("setRowsJson") { (view: T3ReviewDiffView, rowsJson: String) in
view.setRowsJson(rowsJson)
}
AsyncFunction("setTokensJson") { (view: T3ReviewDiffView, tokensJson: String) in
view.setTokensJson(tokensJson)
}
AsyncFunction("setTokensPatchJson") { (view: T3ReviewDiffView, tokensPatchJson: String) in
view.setTokensPatchJson(tokensPatchJson)
}
}
}
}