Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port ConnectionSettings to React #4444

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/components-react/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ import PlatformAppPopOut from './windows/PlatformAppPopOut';
import RecentEventsWindow from './windows/RecentEvents';
import NewBadge from './shared/NewBadge';
import RecordingHistory from './windows/RecordingHistory';
import ConnectionSettings from './windows/scene-transitions/ConnectionSettings';
import UltraIcon from './shared/UltraIcon';
import EditTransform from './windows/EditTransform';
import InstalledApps from './windows/settings/InstalledApps';
Expand Down Expand Up @@ -141,5 +142,6 @@ export const components = {
EditTransform,
InstalledApps,
Blank,
ConnectionSettings,
Hotkeys,
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import { useVuex } from 'components-react/hooks';
import { Services } from 'components-react/service-provider';
import FormFactory from 'components-react/shared/inputs/FormFactory';
import React from 'react';
import { $t } from 'services/i18n';
import { metadata } from '../../shared/inputs/metadata';

export default function SceneTransitions(p: { connectionId: string }) {
const { TransitionsService, ScenesService, EditorCommandsService } = Services;

const { connection, transitionOptions } = useVuex(() => ({
connection: TransitionsService.state.connections.find(conn => conn.id === p.connectionId),
transitionOptions: TransitionsService.state.transitions.map(transition => ({
label: transition.name,
value: transition.id,
})),
}));

if (!connection) return <></>;

const values = {
fromSceneId: connection.fromSceneId,
transitionId: connection.transitionId,
toSceneId: connection.toSceneId,
};

const sceneOptions = [
{ label: $t('All'), value: 'ALL' },
...ScenesService.views.scenes.map(scene => ({ label: scene.name, value: scene.id })),
];

const meta = {
fromSceneId: metadata.list({ label: $t('Beginning Scene'), options: sceneOptions }),
transitionId: metadata.list({ label: $t('Scene Transition'), options: transitionOptions }),
toSceneId: metadata.list({ label: $t('Ending Scene'), options: sceneOptions }),
};

function handleInput(key: string) {
return (value: string) =>
EditorCommandsService.actions.executeCommand('EditConnectionCommand', p.connectionId, {
[key]: value,
});
}

return (
<FormFactory
values={values}
metadata={meta}
onChange={handleInput}
formOptions={{ layout: 'vertical' }}
/>
);
}
107 changes: 0 additions & 107 deletions app/components/ConnectionSettings.tsx

This file was deleted.

3 changes: 3 additions & 0 deletions app/components/shared/ReactComponentList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ export class BrowserView extends ReactComponent {}
})
export class Chat extends ReactComponent {}

@Component({ props: { name: { default: 'ConnectionSettings' } } })
export class ConnectionSettings extends ReactComponent {}

@Component({
props: {
name: { default: 'Display' },
Expand Down
2 changes: 1 addition & 1 deletion app/components/windows/SceneTransitions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
</modal>
<modal name="connection-settings" :height="550">
<div class="connection-settings-modal">
<connection-settings :connection-id="inspectedConnection" />
<connection-settings :componentProps="{ connectionId: inspectedConnection }" />
<button
class="button button--action transition-done"
@click="dismissModal('connection-settings')"
Expand Down
2 changes: 1 addition & 1 deletion app/components/windows/SceneTransitions.vue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import TransitionSettings from 'components/TransitionSettings.vue';
import { $t } from 'services/i18n';
import Tabs, { ITab } from 'components/Tabs.vue';
import { ScenesService } from 'services/scenes';
import ConnectionSettings from 'components/ConnectionSettings';
import { ConnectionSettings } from 'components/shared/ReactComponentList';
import VModal from 'vue-js-modal';
import { EditorCommandsService } from 'services/editor-commands';
import Scrollable from 'components/shared/Scrollable';
Expand Down
30 changes: 16 additions & 14 deletions test/regular/transitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,14 @@ import { clickSceneTransitions, addScene } from '../helpers/modules/scenes';
import { getFormInput } from '../helpers/webdriver/forms';
import { dismissModal } from '../helpers/webdriver/modals';
import { FormMonkey } from '../helpers/form-monkey';
import { click, clickButton, focusChild, focusMain } from '../helpers/modules/core';
import {
click,
clickButton,
focusChild,
focusMain,
waitForDisplayed,
} from '../helpers/modules/core';
import { setInputValue } from '../helpers/modules/forms';

useWebdriver({
restartAppAfterEachTest: false,
Expand Down Expand Up @@ -79,12 +86,10 @@ test('Changing connections', async t => {
await dismissModal(t);
await (await app.client.$('button=Connections')).click();
await (await app.client.$('button=Add Connection')).click();
const form = new FormMonkey(t);
await form.fillByTitles({
'Beginning Scene': connectionBegin,
'Scene Transition': connectionTransition,
'Ending Scene': connectionEnd,
});
await setInputValue('[data-name="fromSceneId"]', connectionBegin);
await setInputValue('[data-name="transitionId"]', connectionTransition);
await setInputValue('[data-name="toSceneId"]', connectionEnd);

await (await t.context.app.client.$('button=Done')).click();
await focusMain();
await clickSceneTransitions();
Expand All @@ -93,13 +98,10 @@ test('Changing connections', async t => {
await (await app.client.$('button=Connections')).click();
await (await app.client.$('.icon-edit')).click();

t.true(
await form.includesByTitles({
'Beginning Scene': connectionBegin,
'Scene Transition': connectionTransition,
'Ending Scene': connectionEnd,
}),
);
await waitForDisplayed(`[data-selected-option-label="${connectionBegin}"]`);
await waitForDisplayed(`[data-selected-option-label="${connectionTransition}"]`);
await waitForDisplayed(`[data-selected-option-label="${connectionEnd}"]`);
t.pass();
});

test('Showing redudant connection warning', async t => {
Expand Down
Loading