| 123456789101112131415161718192021222324252627282930313233343536 |
- function getValueState(visualElement) {
- const state = [{}, {}];
- visualElement?.values.forEach((value, key) => {
- state[0][key] = value.get();
- state[1][key] = value.getVelocity();
- });
- return state;
- }
- function resolveVariantFromProps(props, definition, custom, visualElement) {
- /**
- * If the variant definition is a function, resolve.
- */
- if (typeof definition === "function") {
- const [current, velocity] = getValueState(visualElement);
- definition = definition(custom !== undefined ? custom : props.custom, current, velocity);
- }
- /**
- * If the variant definition is a variant label, or
- * the function returned a variant label, resolve.
- */
- if (typeof definition === "string") {
- definition = props.variants && props.variants[definition];
- }
- /**
- * At this point we've resolved both functions and variant labels,
- * but the resolved variant label might itself have been a function.
- * If so, resolve. This can only have returned a valid target object.
- */
- if (typeof definition === "function") {
- const [current, velocity] = getValueState(visualElement);
- definition = definition(custom !== undefined ? custom : props.custom, current, velocity);
- }
- return definition;
- }
- export { resolveVariantFromProps };
|