diff --git a/packages/react/react/src/components/state-definitions/mute-button.ts b/packages/core/media-store/src/component-state-definitions/mute-button.ts similarity index 89% rename from packages/react/react/src/components/state-definitions/mute-button.ts rename to packages/core/media-store/src/component-state-definitions/mute-button.ts index c2de4b95..6f30854b 100644 --- a/packages/react/react/src/components/state-definitions/mute-button.ts +++ b/packages/core/media-store/src/component-state-definitions/mute-button.ts @@ -11,7 +11,9 @@ export interface MuteButtonMethods { export interface MuteButtonStateDefinition { keys: string[]; stateTransform: (rawState: any) => MuteButtonState; - createRequestMethods: (dispatch: (action: { type: string }) => void) => MuteButtonMethods; + createRequestMethods: ( + dispatch: (action: { type: string }) => void, + ) => MuteButtonMethods; } /** @@ -20,12 +22,12 @@ export interface MuteButtonStateDefinition { */ export const muteButtonStateDefinition: MuteButtonStateDefinition = { keys: ['muted', 'volumeLevel'], - + stateTransform: (rawState: any): MuteButtonState => ({ muted: rawState.muted ?? false, volumeLevel: rawState.volumeLevel ?? 'off', }), - + createRequestMethods: (dispatch): MuteButtonMethods => ({ requestMute: () => dispatch({ type: 'muterequest' }), requestUnmute: () => dispatch({ type: 'unmuterequest' }), diff --git a/packages/html/html/src/components/state-definitions/play-button.ts b/packages/core/media-store/src/component-state-definitions/play-button.ts similarity index 99% rename from packages/html/html/src/components/state-definitions/play-button.ts rename to packages/core/media-store/src/component-state-definitions/play-button.ts index 4f1f7859..fee1262f 100644 --- a/packages/html/html/src/components/state-definitions/play-button.ts +++ b/packages/core/media-store/src/component-state-definitions/play-button.ts @@ -30,4 +30,4 @@ export const playButtonStateDefinition: PlayButtonStateDefinition = { requestPlay: () => dispatch({ type: 'playrequest' }), requestPause: () => dispatch({ type: 'pauserequest' }), }), -}; +}; \ No newline at end of file diff --git a/packages/core/media-store/src/index.ts b/packages/core/media-store/src/index.ts index b62e729a..b6ca3fea 100644 --- a/packages/core/media-store/src/index.ts +++ b/packages/core/media-store/src/index.ts @@ -1,4 +1,6 @@ export * from './factory'; export { createMediaStore } from './media-store'; export * from './state-mediators/playable'; -export * from './state-mediators/audible'; \ No newline at end of file +export * from './state-mediators/audible'; +export * from './component-state-definitions/play-button'; +export * from './component-state-definitions/mute-button'; \ No newline at end of file diff --git a/packages/html/html/src/components/media-mute-button.ts b/packages/html/html/src/components/media-mute-button.ts index eee4f3a1..cf35e651 100644 --- a/packages/html/html/src/components/media-mute-button.ts +++ b/packages/html/html/src/components/media-mute-button.ts @@ -4,7 +4,7 @@ import { PropsHook, } from '../utils/component-factory'; import { MediaChromeButton } from './media-chrome-button'; -import { muteButtonStateDefinition } from './state-definitions/mute-button'; +import { muteButtonStateDefinition } from '@vjs-10/media-store'; export class MuteButtonBase extends MediaChromeButton { _state: diff --git a/packages/html/html/src/components/media-play-button.ts b/packages/html/html/src/components/media-play-button.ts index e8789e5f..54748b1b 100644 --- a/packages/html/html/src/components/media-play-button.ts +++ b/packages/html/html/src/components/media-play-button.ts @@ -4,7 +4,7 @@ import { PropsHook, } from '../utils/component-factory'; import { MediaChromeButton } from './media-chrome-button'; -import { playButtonStateDefinition } from './state-definitions/play-button'; +import { playButtonStateDefinition } from '@vjs-10/media-store'; export class PlayButtonBase extends MediaChromeButton { _state: diff --git a/packages/html/html/src/components/state-definitions/mute-button.ts b/packages/html/html/src/components/state-definitions/mute-button.ts deleted file mode 100644 index be77ea62..00000000 --- a/packages/html/html/src/components/state-definitions/mute-button.ts +++ /dev/null @@ -1,35 +0,0 @@ -export interface MuteButtonState { - muted: boolean; - volumeLevel: string; -} - -export interface MuteButtonMethods { - requestMute: () => void; - requestUnmute: () => void; -} - -export interface MuteButtonStateDefinition { - keys: string[]; - stateTransform: (rawState: any) => MuteButtonState; - createRequestMethods: ( - dispatch: (action: { type: string }) => void, - ) => MuteButtonMethods; -} - -/** - * MuteButton state definition - * Defines the core state logic that can be shared between implementations - */ -export const muteButtonStateDefinition: MuteButtonStateDefinition = { - keys: ['muted', 'volumeLevel'], - - stateTransform: (rawState: any): MuteButtonState => ({ - muted: rawState.muted ?? (false as boolean), - volumeLevel: rawState.volumeLevel ?? ('off' as string), - }), - - createRequestMethods: (dispatch): MuteButtonMethods => ({ - requestMute: () => dispatch({ type: 'muterequest' }), - requestUnmute: () => dispatch({ type: 'unmuterequest' }), - }), -}; \ No newline at end of file diff --git a/packages/react/react/src/components/MuteButton.tsx b/packages/react/react/src/components/MuteButton.tsx index 22b50af6..ace1046a 100644 --- a/packages/react/react/src/components/MuteButton.tsx +++ b/packages/react/react/src/components/MuteButton.tsx @@ -5,7 +5,7 @@ import { } from '@vjs-10/react-media-store'; import * as React from 'react'; import { toConnectedComponent } from '../utils/component-factory'; -import { muteButtonStateDefinition } from './state-definitions/mute-button'; +import { muteButtonStateDefinition } from '@vjs-10/media-store'; export const useMuteButtonState = (_props: any) => { const mediaStore = useMediaStore(); diff --git a/packages/react/react/src/components/PlayButton.tsx b/packages/react/react/src/components/PlayButton.tsx index 6db29649..825fc8ec 100644 --- a/packages/react/react/src/components/PlayButton.tsx +++ b/packages/react/react/src/components/PlayButton.tsx @@ -5,7 +5,7 @@ import { } from '@vjs-10/react-media-store'; import * as React from 'react'; import { toConnectedComponent } from '../utils/component-factory'; -import { playButtonStateDefinition } from './state-definitions/play-button'; +import { playButtonStateDefinition } from '@vjs-10/media-store'; export const usePlayButtonState = (_props: any) => { const mediaStore = useMediaStore(); diff --git a/packages/react/react/src/components/state-definitions/play-button.ts b/packages/react/react/src/components/state-definitions/play-button.ts deleted file mode 100644 index 4f1f7859..00000000 --- a/packages/react/react/src/components/state-definitions/play-button.ts +++ /dev/null @@ -1,33 +0,0 @@ -export interface PlayButtonState { - paused: boolean; -} - -export interface PlayButtonMethods { - requestPlay: () => void; - requestPause: () => void; -} - -export interface PlayButtonStateDefinition { - keys: string[]; - stateTransform: (rawState: any) => PlayButtonState; - createRequestMethods: ( - dispatch: (action: { type: string }) => void, - ) => PlayButtonMethods; -} - -/** - * PlayButton state definition - * Defines the core state logic that can be shared between implementations - */ -export const playButtonStateDefinition: PlayButtonStateDefinition = { - keys: ['paused'], - - stateTransform: (rawState: any): PlayButtonState => ({ - paused: rawState.paused ?? true, - }), - - createRequestMethods: (dispatch): PlayButtonMethods => ({ - requestPlay: () => dispatch({ type: 'playrequest' }), - requestPause: () => dispatch({ type: 'pauserequest' }), - }), -};