Skip to content

Commit 92596be

Browse files
authored
refactor: rename spoilerMode to spoilerOverlay and update related implementations (#238)
* refactor: rename SpoilerMode to SpoilerOverlay and update related implementations * chore: update hermes-engine and React-Core-prebuilt checksums in Podfile.lock
1 parent 56566bf commit 92596be

22 files changed

Lines changed: 67 additions & 68 deletions

android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdown.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import com.swmansion.enriched.markdown.parser.Md4cFlags
1616
import com.swmansion.enriched.markdown.parser.Parser
1717
import com.swmansion.enriched.markdown.renderer.Renderer
1818
import com.swmansion.enriched.markdown.spans.ImageSpan
19-
import com.swmansion.enriched.markdown.spoiler.SpoilerMode
19+
import com.swmansion.enriched.markdown.spoiler.SpoilerOverlay
2020
import com.swmansion.enriched.markdown.styles.StyleConfig
2121
import com.swmansion.enriched.markdown.utils.common.FeatureFlags
2222
import com.swmansion.enriched.markdown.utils.common.MarkdownSegment
@@ -80,12 +80,12 @@ class EnrichedMarkdown
8080
private var onTaskListItemPressCallback: ((Int, Boolean, String) -> Unit)? = null
8181
private var contextMenuItemTexts: List<String> = emptyList()
8282
var onContextMenuItemPressCallback: ((itemText: String, selectedText: String, selectionStart: Int, selectionEnd: Int) -> Unit)? = null
83-
var spoilerMode: SpoilerMode = SpoilerMode.PARTICLES
83+
var spoilerOverlay: SpoilerOverlay = SpoilerOverlay.PARTICLES
8484
set(value) {
8585
if (field == value) return
8686
field = value
8787
segmentViews.filterIsInstance<EnrichedMarkdownInternalText>().forEach {
88-
it.spoilerMode = value
88+
it.spoilerOverlay = value
8989
}
9090
}
9191

@@ -252,7 +252,7 @@ class EnrichedMarkdown
252252

253253
private fun createTextView(segment: RenderSegment.Text) =
254254
EnrichedMarkdownInternalText(context).apply {
255-
spoilerMode = this@EnrichedMarkdown.spoilerMode
255+
spoilerOverlay = this@EnrichedMarkdown.spoilerOverlay
256256
setIsSelectable(selectable)
257257
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && segment.needsJustify) {
258258
justificationMode = android.text.Layout.JUSTIFICATION_MODE_INTER_WORD

android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import android.view.MotionEvent
88
import androidx.appcompat.widget.AppCompatTextView
99
import com.swmansion.enriched.markdown.accessibility.MarkdownAccessibilityHelper
1010
import com.swmansion.enriched.markdown.spoiler.SpoilerCapable
11-
import com.swmansion.enriched.markdown.spoiler.SpoilerMode
11+
import com.swmansion.enriched.markdown.spoiler.SpoilerOverlay
1212
import com.swmansion.enriched.markdown.spoiler.SpoilerOverlayDrawer
1313
import com.swmansion.enriched.markdown.utils.text.interaction.CheckboxTouchHelper
1414
import com.swmansion.enriched.markdown.utils.text.view.LinkLongPressMovementMethod
@@ -44,7 +44,7 @@ class EnrichedMarkdownInternalText
4444

4545
override var spoilerOverlayDrawer: SpoilerOverlayDrawer? = null
4646
private set
47-
var spoilerMode: SpoilerMode = SpoilerMode.PARTICLES
47+
var spoilerOverlay: SpoilerOverlay = SpoilerOverlay.PARTICLES
4848
private var contextMenuItemTexts: List<String> = emptyList()
4949
private var onContextMenuItemPress: ((itemText: String, selectedText: String, selectionStart: Int, selectionEnd: Int) -> Unit)? = null
5050

@@ -67,7 +67,7 @@ class EnrichedMarkdownInternalText
6767
movementMethod = LinkLongPressMovementMethod.createInstance()
6868
}
6969

70-
spoilerOverlayDrawer = SpoilerOverlayDrawer.setupIfNeeded(this, styledText, spoilerOverlayDrawer, spoilerMode)
70+
spoilerOverlayDrawer = SpoilerOverlayDrawer.setupIfNeeded(this, styledText, spoilerOverlayDrawer, spoilerOverlay)
7171
accessibilityHelper.invalidateAccessibilityItems()
7272
}
7373

android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.facebook.react.uimanager.annotations.ReactProp
1111
import com.facebook.react.viewmanagers.EnrichedMarkdownManagerDelegate
1212
import com.facebook.react.viewmanagers.EnrichedMarkdownManagerInterface
1313
import com.facebook.yoga.YogaMeasureMode
14-
import com.swmansion.enriched.markdown.spoiler.SpoilerMode
14+
import com.swmansion.enriched.markdown.spoiler.SpoilerOverlay
1515
import com.swmansion.enriched.markdown.utils.common.emitContextMenuItemPress
1616
import com.swmansion.enriched.markdown.utils.common.emitLinkLongPress
1717
import com.swmansion.enriched.markdown.utils.common.emitLinkPress
@@ -129,12 +129,12 @@ class EnrichedMarkdownManager :
129129
// Currently only supported with flavor="commonmark" (single TextView).
130130
}
131131

132-
@ReactProp(name = "spoilerMode")
133-
override fun setSpoilerMode(
132+
@ReactProp(name = "spoilerOverlay")
133+
override fun setSpoilerOverlay(
134134
view: EnrichedMarkdown?,
135135
mode: String?,
136136
) {
137-
view?.spoilerMode = SpoilerMode.fromString(mode)
137+
view?.spoilerOverlay = SpoilerOverlay.fromString(mode)
138138
}
139139

140140
@ReactProp(name = "contextMenuItems")

android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import com.swmansion.enriched.markdown.parser.Md4cFlags
1717
import com.swmansion.enriched.markdown.parser.Parser
1818
import com.swmansion.enriched.markdown.renderer.Renderer
1919
import com.swmansion.enriched.markdown.spoiler.SpoilerCapable
20-
import com.swmansion.enriched.markdown.spoiler.SpoilerMode
20+
import com.swmansion.enriched.markdown.spoiler.SpoilerOverlay
2121
import com.swmansion.enriched.markdown.spoiler.SpoilerOverlayDrawer
2222
import com.swmansion.enriched.markdown.styles.StyleConfig
2323
import com.swmansion.enriched.markdown.utils.text.TailFadeInAnimator
@@ -83,7 +83,7 @@ class EnrichedMarkdownText
8383
private var fadeAnimator: TailFadeInAnimator? = null
8484
override var spoilerOverlayDrawer: SpoilerOverlayDrawer? = null
8585
private set
86-
var spoilerMode: SpoilerMode = SpoilerMode.PARTICLES
86+
var spoilerOverlay: SpoilerOverlay = SpoilerOverlay.PARTICLES
8787

8888
init {
8989
setupAsMarkdownTextView(accessibilityHelper)
@@ -240,7 +240,7 @@ class EnrichedMarkdownText
240240
span.registerTextView(this)
241241
}
242242

243-
spoilerOverlayDrawer = SpoilerOverlayDrawer.setupIfNeeded(this, styledText, spoilerOverlayDrawer, spoilerMode)
243+
spoilerOverlayDrawer = SpoilerOverlayDrawer.setupIfNeeded(this, styledText, spoilerOverlayDrawer, spoilerOverlay)
244244

245245
layoutManager.invalidateLayout()
246246
accessibilityHelper.invalidateAccessibilityItems()

android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextManager.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.facebook.react.uimanager.annotations.ReactProp
1111
import com.facebook.react.viewmanagers.EnrichedMarkdownTextManagerDelegate
1212
import com.facebook.react.viewmanagers.EnrichedMarkdownTextManagerInterface
1313
import com.facebook.yoga.YogaMeasureMode
14-
import com.swmansion.enriched.markdown.spoiler.SpoilerMode
14+
import com.swmansion.enriched.markdown.spoiler.SpoilerOverlay
1515
import com.swmansion.enriched.markdown.utils.common.emitContextMenuItemPress
1616
import com.swmansion.enriched.markdown.utils.common.emitLinkLongPress
1717
import com.swmansion.enriched.markdown.utils.common.emitLinkPress
@@ -148,12 +148,12 @@ class EnrichedMarkdownTextManager :
148148
view?.setStreamingAnimation(streamingAnimation)
149149
}
150150

151-
@ReactProp(name = "spoilerMode")
152-
override fun setSpoilerMode(
151+
@ReactProp(name = "spoilerOverlay")
152+
override fun setSpoilerOverlay(
153153
view: EnrichedMarkdownText?,
154154
mode: String?,
155155
) {
156-
view?.spoilerMode = SpoilerMode.fromString(mode)
156+
view?.spoilerOverlay = SpoilerOverlay.fromString(mode)
157157
}
158158

159159
@ReactProp(name = "contextMenuItems")

android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerMode.kt renamed to android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerOverlay.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.swmansion.enriched.markdown.spoiler
22

3-
enum class SpoilerMode(
3+
enum class SpoilerOverlay(
44
internal val createStrategy: (SpoilerAnimator) -> SpoilerStrategy,
55
) {
66
PARTICLES({ animator -> ParticleStrategy(animator) }),
77
SOLID({ _ -> SolidStrategy() }),
88
;
99

1010
companion object {
11-
fun fromString(value: String?): SpoilerMode =
11+
fun fromString(value: String?): SpoilerOverlay =
1212
when (value) {
1313
"solid" -> SOLID
1414
else -> PARTICLES

android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerOverlayDrawer.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ class SpoilerOverlayDrawer(
1313
private val textViewReference = WeakReference(textView)
1414
val animator = SpoilerAnimator(textView)
1515

16-
private var strategy: SpoilerStrategy = createStrategy(SpoilerMode.PARTICLES)
17-
private var currentMode: SpoilerMode = SpoilerMode.PARTICLES
16+
private var strategy: SpoilerStrategy = createStrategy(SpoilerOverlay.PARTICLES)
17+
private var currentMode: SpoilerOverlay = SpoilerOverlay.PARTICLES
1818

1919
private val activeKeys = mutableSetOf<SegmentKey>()
2020

2121
private var cachedStyle: SpoilerStyle? = null
2222

23-
var spoilerMode: SpoilerMode
23+
var spoilerOverlay: SpoilerOverlay
2424
get() = currentMode
2525
set(value) {
2626
if (currentMode == value) return
@@ -126,20 +126,20 @@ class SpoilerOverlayDrawer(
126126
)
127127
}
128128

129-
private fun createStrategy(mode: SpoilerMode): SpoilerStrategy = mode.createStrategy(animator)
129+
private fun createStrategy(mode: SpoilerOverlay): SpoilerStrategy = mode.createStrategy(animator)
130130

131131
companion object {
132132
fun setupIfNeeded(
133133
textView: TextView,
134134
styledText: CharSequence,
135135
existing: SpoilerOverlayDrawer?,
136-
spoilerMode: SpoilerMode = SpoilerMode.PARTICLES,
136+
spoilerOverlay: SpoilerOverlay = SpoilerOverlay.PARTICLES,
137137
): SpoilerOverlayDrawer? {
138138
if (styledText !is Spanned) return tearDown(existing)
139139
val spans = styledText.getSpans(0, styledText.length, SpoilerSpan::class.java)
140140
if (spans.isEmpty()) return tearDown(existing)
141141
val drawer = existing ?: SpoilerOverlayDrawer(textView)
142-
drawer.spoilerMode = spoilerMode
142+
drawer.spoilerOverlay = spoilerOverlay
143143
drawer.registerSpans(spans)
144144
return drawer
145145
}

apps/example/ios/Podfile.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2117,7 +2117,7 @@ EXTERNAL SOURCES:
21172117

21182118
SPEC CHECKSUMS:
21192119
FBLazyVector: e97c19a5a442429d1988f182a1940fb08df514da
2120-
hermes-engine: b0f9c82a51be8e938eb979ada628323e1e093f1d
2120+
hermes-engine: 40811a005e96e04818cff405ec04a5b4c4411c1c
21212121
iosMath: f7a6cbadf9d836d2149c2a84c435b1effc244cba
21222122
RCTDeprecation: af44b104091a34482596cd9bd7e8d90c4e9b4bd7
21232123
RCTRequired: bb77b070f75f53398ce43c0aaaa58337cebe2bf6
@@ -2127,7 +2127,7 @@ SPEC CHECKSUMS:
21272127
React: 1ba7d364ade7d883a1ec055bfc3606f35fdee17b
21282128
React-callinvoker: bc2a26f8d84fb01f003fc6de6c9337b64715f95b
21292129
React-Core: 7840d3a80b43a95c5e80ef75146bd70925ebab0f
2130-
React-Core-prebuilt: 3dc04e91547fc0f260f4b84c12da0f672b813862
2130+
React-Core-prebuilt: 7965d06a81dcc544164f8e98b26d35ae2a4eb36e
21312131
React-CoreModules: 2eb010400b63b89e53a324ffb3c112e4c7c3ce42
21322132
React-cxxreact: a558e92199d26f145afa9e62c4233cf8e7950efe
21332133
React-debug: 755200a6e7f5e6e0a40ff8d215493d43cce285fc
@@ -2189,7 +2189,7 @@ SPEC CHECKSUMS:
21892189
ReactAppDependencyProvider: e96e93b493d8d86eeaee3e590ba0be53f6abe46f
21902190
ReactCodegen: 797de5178718324c6eba3327b07f9a423fbd5787
21912191
ReactCommon: 07572bf9e687c8a52fbe4a3641e9e3a1a477c78e
2192-
ReactNativeDependencies: 44f7326a697de7f6c8629036b1a4689f0e64c684
2192+
ReactNativeDependencies: 0811b43c669e637a9f3c485fdb106f187fa88398
21932193
ReactNativeEnrichedMarkdown: 1daba1851810704ba2f5c6e5fff638a94661e317
21942194
Yoga: c0b3f2c7e8d3e327e450223a2414ca3fa296b9a2
21952195

docs/API_REFERENCE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ When `true`, newly appended content fades in during streaming updates. Only the
176176
| --------- | ------------- | -------- |
177177
| `boolean` | `false` | Both |
178178

179-
### `spoilerMode`
179+
### `spoilerOverlay`
180180

181181
Controls how spoiler text (`||hidden text||`) is displayed before being revealed.
182182

ios/EnrichedMarkdown.mm

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ @implementation EnrichedMarkdown {
117117
NSArray<NSString *> *_contextMenuItemTexts;
118118
NSArray<NSString *> *_contextMenuItemIcons;
119119

120-
ENRMSpoilerMode _spoilerMode;
120+
ENRMSpoilerOverlay _spoilerOverlay;
121121
}
122122

123123
+ (ComponentDescriptorProvider)componentDescriptorProvider
@@ -486,7 +486,7 @@ - (ENRMRenderResult *)renderTextSegment:(EMTextSegment *)textSegment
486486
- (EnrichedMarkdownInternalText *)createTextViewForRenderedSegment:(ENRMRenderResult *)segment
487487
{
488488
EnrichedMarkdownInternalText *view = [[EnrichedMarkdownInternalText alloc] initWithConfig:_config];
489-
view.spoilerMode = _spoilerMode;
489+
view.spoilerOverlay = _spoilerOverlay;
490490
view.allowTrailingMargin = _allowTrailingMargin;
491491
view.lastElementMarginBottom = segment.lastElementMarginBottom;
492492
view.accessibilityInfo = segment.accessibilityInfo;
@@ -647,12 +647,12 @@ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &
647647
_contextMenuItemIcons = ENRMContextMenuIconsFromItems(newViewProps.contextMenuItems);
648648
}
649649

650-
if (newViewProps.spoilerMode != oldViewProps.spoilerMode) {
651-
NSString *modeStr = [[NSString alloc] initWithUTF8String:newViewProps.spoilerMode.c_str()];
652-
_spoilerMode = ENRMSpoilerModeFromString(modeStr);
650+
if (newViewProps.spoilerOverlay != oldViewProps.spoilerOverlay) {
651+
NSString *modeStr = [[NSString alloc] initWithUTF8String:newViewProps.spoilerOverlay.c_str()];
652+
_spoilerOverlay = ENRMSpoilerOverlayFromString(modeStr);
653653
for (RCTUIView *segment in _segmentViews) {
654654
if ([segment isKindOfClass:[EnrichedMarkdownInternalText class]]) {
655-
((EnrichedMarkdownInternalText *)segment).spoilerMode = _spoilerMode;
655+
((EnrichedMarkdownInternalText *)segment).spoilerOverlay = _spoilerOverlay;
656656
}
657657
}
658658
}

0 commit comments

Comments
 (0)