Skip to content

Commit 772755e

Browse files
EQuimperjanicduplessis
authored andcommitted
fix: changes how props is present
1 parent 9cbf079 commit 772755e

7 files changed

Lines changed: 494 additions & 637 deletions

File tree

android/src/main/java/com/ease/EaseView.kt

Lines changed: 77 additions & 107 deletions
Large diffs are not rendered by default.

android/src/main/java/com/ease/EaseViewManager.kt

Lines changed: 5 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.ease
33
import android.graphics.Color
44
import com.facebook.react.bridge.Arguments
55
import com.facebook.react.bridge.ReadableArray
6+
import com.facebook.react.bridge.ReadableMap
67
import com.facebook.react.bridge.WritableMap
78
import com.facebook.react.module.annotations.ReactModule
89
import com.facebook.react.uimanager.PixelUtil
@@ -126,122 +127,11 @@ class EaseViewManager : ReactViewManager() {
126127
view.initialAnimateBorderRadius = PixelUtil.toPixelFromDIP(value)
127128
}
128129

129-
// --- Transition config setters ---
130-
131-
@ReactProp(name = "transitionType")
132-
fun setTransitionType(view: EaseView, value: String?) {
133-
view.transitionType = value ?: "timing"
134-
}
135-
136-
@ReactProp(name = "transitionDuration", defaultInt = 300)
137-
fun setTransitionDuration(view: EaseView, value: Int) {
138-
view.transitionDuration = value
139-
}
140-
141-
@ReactProp(name = "transitionEasingBezier")
142-
fun setTransitionEasingBezier(view: EaseView, value: ReadableArray?) {
143-
if (value != null && value.size() == 4) {
144-
view.transitionEasingBezier = floatArrayOf(
145-
value.getDouble(0).toFloat(),
146-
value.getDouble(1).toFloat(),
147-
value.getDouble(2).toFloat(),
148-
value.getDouble(3).toFloat()
149-
)
150-
} else {
151-
// Fallback: easeInOut
152-
view.transitionEasingBezier = floatArrayOf(0.42f, 0f, 0.58f, 1.0f)
153-
}
154-
}
155-
156-
@ReactProp(name = "transitionDamping", defaultFloat = 15f)
157-
fun setTransitionDamping(view: EaseView, value: Float) {
158-
view.transitionDamping = value
159-
}
160-
161-
@ReactProp(name = "transitionStiffness", defaultFloat = 120f)
162-
fun setTransitionStiffness(view: EaseView, value: Float) {
163-
view.transitionStiffness = value
164-
}
165-
166-
@ReactProp(name = "transitionMass", defaultFloat = 1f)
167-
fun setTransitionMass(view: EaseView, value: Float) {
168-
view.transitionMass = value
169-
}
170-
171-
@ReactProp(name = "transitionLoop")
172-
fun setTransitionLoop(view: EaseView, value: String?) {
173-
view.transitionLoop = value ?: "none"
174-
}
175-
176-
@ReactProp(name = "transitionDelay", defaultInt = 0)
177-
fun setTransitionDelay(view: EaseView, value: Int) {
178-
view.transitionDelay = value.toLong()
179-
}
180-
181-
// --- Per-property transition arrays ---
182-
183-
@ReactProp(name = "perPropertyTransitionTypes")
184-
fun setPerPropertyTransitionTypes(view: EaseView, value: ReadableArray?) {
185-
if (value != null && value.size() == 10) {
186-
view.perPropertyTransitionTypes = Array(10) { value.getString(it) ?: "" }
187-
} else {
188-
view.perPropertyTransitionTypes = null
189-
}
190-
}
191-
192-
@ReactProp(name = "perPropertyTransitionDurations")
193-
fun setPerPropertyTransitionDurations(view: EaseView, value: ReadableArray?) {
194-
if (value != null && value.size() == 10) {
195-
view.perPropertyTransitionDurations = IntArray(10) { value.getInt(it) }
196-
} else {
197-
view.perPropertyTransitionDurations = null
198-
}
199-
}
200-
201-
@ReactProp(name = "perPropertyTransitionDampings")
202-
fun setPerPropertyTransitionDampings(view: EaseView, value: ReadableArray?) {
203-
if (value != null && value.size() == 10) {
204-
view.perPropertyTransitionDampings = FloatArray(10) { value.getDouble(it).toFloat() }
205-
} else {
206-
view.perPropertyTransitionDampings = null
207-
}
208-
}
209-
210-
@ReactProp(name = "perPropertyTransitionStiffnesses")
211-
fun setPerPropertyTransitionStiffnesses(view: EaseView, value: ReadableArray?) {
212-
if (value != null && value.size() == 10) {
213-
view.perPropertyTransitionStiffnesses = FloatArray(10) { value.getDouble(it).toFloat() }
214-
} else {
215-
view.perPropertyTransitionStiffnesses = null
216-
}
217-
}
218-
219-
@ReactProp(name = "perPropertyTransitionMasses")
220-
fun setPerPropertyTransitionMasses(view: EaseView, value: ReadableArray?) {
221-
if (value != null && value.size() == 10) {
222-
view.perPropertyTransitionMasses = FloatArray(10) { value.getDouble(it).toFloat() }
223-
} else {
224-
view.perPropertyTransitionMasses = null
225-
}
226-
}
227-
228-
@ReactProp(name = "perPropertyTransitionLoops")
229-
fun setPerPropertyTransitionLoops(view: EaseView, value: ReadableArray?) {
230-
if (value != null && value.size() == 10) {
231-
view.perPropertyTransitionLoops = Array(10) { value.getString(it) ?: "" }
232-
} else {
233-
view.perPropertyTransitionLoops = null
234-
}
235-
}
236-
237-
@ReactProp(name = "perPropertyTransitionEasingBeziers")
238-
fun setPerPropertyTransitionEasingBeziers(view: EaseView, value: ReadableArray?) {
239-
if (value != null && value.size() == 40) {
240-
view.perPropertyTransitionEasingBeziers = FloatArray(40) { value.getDouble(it).toFloat() }
241-
} else {
242-
view.perPropertyTransitionEasingBeziers = null
243-
}
130+
// --- Transitions config (single ReadableMap) ---
244131

132+
@ReactProp(name = "transitions")
133+
fun setTransitions(view: EaseView, value: ReadableMap?) {
134+
view.setTransitionsFromMap(value)
245135
}
246136

247137
// --- Border radius ---

example/src/demos/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ export const demos: Record<string, DemoEntry> = {
3636
'rotate': { component: RotateDemo, title: 'Rotate', section: 'Transform' },
3737
'scale': { component: ScaleDemo, title: 'Scale', section: 'Transform' },
3838
'transform-origin': {
39-
'per-property': { component: PerPropertyDemo, title: 'Per-Property', section: 'Advanced' },
4039
component: TransformOriginDemo,
4140
title: 'Transform Origin',
4241
section: 'Transform',
@@ -80,6 +79,11 @@ export const demos: Record<string, DemoEntry> = {
8079
title: 'Comparison',
8180
section: 'Advanced',
8281
},
82+
'per-property': {
83+
component: PerPropertyDemo,
84+
title: 'Per-Property',
85+
section: 'Advanced',
86+
},
8387
};
8488

8589
interface SectionData {

0 commit comments

Comments
 (0)