cloudinary-community / cloudinary-util

https://cloudinary-util.vercel.app
MIT License
12 stars 19 forks source link

getVideoPlayerOptions #156

Closed colbyfayock closed 6 months ago

colbyfayock commented 6 months ago

Description

This lifts the player options logic from Next Cloudinary, which should basically reflect Nuxt and Svelte.

This allows us to maintain a single set of configuration options for the player that will support each framework that creates a similar CldVideoPlayer component.

It would work as such:

const playerOptions = getVideoPlayerOptions(props, config);
videoPlayer(videoRef.current, playerOptions);

You can see some examples inside of the tests.

As of now, I left out className and id as returned options as the function's intent is to return "player options", which would be invalid values for the player. This in come cases could cause unintentional side effects, so opting to not return those.

A potential solution would be to return an object, with player options as a property, but i'm leaning towards it being an unintuitive return shape given the name of the function. Open to thoughts on this.

As far as where this module is located, I opted to include it in /url-loader with the idea being that the family of component support functions could live under that package and in a future major release, we could rename it to something more appropriate for all. I'm open to other ideas / suggestions on this.

Issue Ticket Number

Fixes #155

Type of change

Checklist

ghostdevv commented 6 months ago

videoRef.current

Is this the DOM element?

colbyfayock commented 6 months ago

@ghostdevv yeah, i was trying to think of how to show an example with a reference without it being confusing but couldn't think of one. now that im thinking again i coulda just done like document.querySelector('#player') or something, but i dont think any of us do that anyways 🤷

ghostdevv commented 6 months ago

Awesome - I have just enough knowledge of React to see what you were getting at 😂

github-actions[bot] commented 6 months ago

:tada: This PR is included in version @cloudinary-util/url-loader-v5.3.0-beta.1 :tada:

The release is available on:

Your semantic-release bot :package::rocket: