#pragma once #include #include #include #include #include namespace reanimated::css { struct CSSTransitionPropertySettings { double duration; EasingFunction easingFunction; double delay; bool allowDiscrete; }; using CSSTransitionPropertiesSettings = std::unordered_map; struct CSSTransitionConfig { TransitionProperties properties; CSSTransitionPropertiesSettings settings; }; struct PartialCSSTransitionConfig { std::optional properties; std::optional settings; }; std::optional getTransitionPropertySettings( const CSSTransitionPropertiesSettings &propertiesSettings, const std::string &propName); TransitionProperties getProperties(jsi::Runtime &rt, const jsi::Object &config); CSSTransitionPropertiesSettings parseCSSTransitionPropertiesSettings( jsi::Runtime &rt, const jsi::Object &settings); CSSTransitionConfig parseCSSTransitionConfig( jsi::Runtime &rt, const jsi::Value &config); PartialCSSTransitionConfig parsePartialCSSTransitionConfig( jsi::Runtime &rt, const jsi::Value &partialConfig); } // namespace reanimated::css