Skip to content

Commit

Permalink
Rebase and addressed the comments
Browse files Browse the repository at this point in the history
Signed-off-by: abbyhu2000 <abigailhu2000@gmail.com>
  • Loading branch information
abbyhu2000 committed Nov 28, 2022
2 parents d058b81 + 6afe345 commit 03eb18c
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 30 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,13 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- [Table Visualization] Fix first column sort issue ([#2828](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2828))
- Temporary workaround for task-kill exceptions on Windows when it is passed a pid for a process that is already dead ([#2842](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2842))
- [Vis Builder] Fix empty workspace animation does not work in firefox ([#2853](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2853))
<<<<<<< HEAD
- Bumped `del` version to fix MacOS race condition ([#2847](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2873))
- [Vis Builder] global data persistence for vis builder #2896 ([#2896](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2896))
=======
- [Vis Builder] global data persistence for vis builder #2896 ([#2896](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2896))

>>>>>>> 6afe345231bc48ead6f9361d43a99f153302d8a4
### 🚞 Infrastructure

- Add CHANGELOG.md and related workflows ([#2414](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2414))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export interface TopNavConfigParams {
savedVisBuilderVis: VisBuilderVisSavedObject;
saveDisabledReason?: string;
dispatch: AppDispatch;
originatingApp: string | undefined;
originatingApp?: string;
}

export const getTopNavConfig = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,15 @@ const initialState: MetadataState = {
export const getPreloadedState = async ({
types,
data,
embeddable,
scopedHistory,
}: VisBuilderServices): Promise<MetadataState> => {
const preloadedState = { ...initialState };
const { originatingApp } =
embeddable
.getStateTransfer(scopedHistory)
.getIncomingEditorState({ keysToRemoveAfterFetch: ['id', 'input'] }) || {};

const preloadedState = { ...initialState, originatingApp };
return preloadedState;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import { combineReducers, configureStore, PreloadedState } from '@reduxjs/toolkit';
import { reducer as styleReducer } from './style_slice';
import { reducer as visualizationReducer } from './visualization_slice';
import { reducer as metadataReducer, setOriginatingApp } from './metadata_slice';
import { reducer as metadataReducer } from './metadata_slice';
import { VisBuilderServices } from '../../..';
import { getPreloadedState } from './preload';
import { setEditorState } from './metadata_slice';
Expand All @@ -25,10 +25,6 @@ export const configurePreloadedStore = (preloadedState: PreloadedState<RootState
};

export const getPreloadedStore = async (services: VisBuilderServices) => {
const { originatingApp } =
services.embeddable
.getStateTransfer(services.scopedHistory)
.getIncomingEditorState({ keysToRemoveAfterFetch: ['id', 'input'] }) || {};
const preloadedState = await getPreloadedState(services);
const store = configurePreloadedStore(preloadedState);

Expand All @@ -38,7 +34,6 @@ export const getPreloadedStore = async (services: VisBuilderServices) => {
style: styleState,
};
let previousMetadata = metadataState;
store.dispatch(setOriginatingApp({ state: originatingApp }));

// Listen to changes
const handleChange = () => {
Expand Down
27 changes: 9 additions & 18 deletions src/plugins/vis_builder/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,25 +67,19 @@ export class VisBuilderPlugin
> {
private typeService = new TypeService();
private appStateUpdater = new BehaviorSubject<AppUpdater>(() => ({}));
private stopUrlTracking: (() => void) | undefined = undefined;
private currentHistory: ScopedHistory | undefined = undefined;
private stopUrlTracking?: () => void;
private currentHistory?: ScopedHistory;

constructor(public initializerContext: PluginInitializerContext<ConfigSchema>) {}

public setup(
core: CoreSetup<VisBuilderPluginStartDependencies, VisBuilderStart>,
{ embeddable, visualizations, data: dataSetup }: VisBuilderPluginSetupDependencies
) {
const {
appMounted,
appUnMounted,
stop: stopUrlTracker,
setActiveUrl,
restorePreviousUrl,
} = createOsdUrlTracker({
baseUrl: core.http.basePath.prepend('/app/vis-builder'),
const { appMounted, appUnMounted, stop: stopUrlTracker } = createOsdUrlTracker({
baseUrl: core.http.basePath.prepend(`/app/${PLUGIN_ID}`),
defaultSubUrl: '#/',
storageKey: `lastUrl:${core.http.basePath.get()}:vis-builder`,
storageKey: `lastUrl:${core.http.basePath.get()}:${PLUGIN_ID}`,
navLinkUpdater$: this.appStateUpdater,
toastNotifications: core.notifications.toasts,
stateParams: [
Expand All @@ -110,6 +104,7 @@ export class VisBuilderPlugin
stopUrlTracker();
};

// Register Default Visualizations
const typeService = this.typeService;
registerDefaultTypes(typeService.setup());

Expand Down Expand Up @@ -143,13 +138,12 @@ export class VisBuilderPlugin
window.dispatchEvent(new HashChangeEvent('hashchange'));
});

// Register Default Visualizations
const services: VisBuilderServices = {
...coreStart,
scopedHistory: this.currentHistory,
history: params.history,
history: this.currentHistory,
osdUrlStateStorage: createOsdUrlStateStorage({
history: params.history,
history: this.currentHistory,
useHash: coreStart.uiSettings.get('state:storeInSessionStorage'),
...withNotifyOnErrors(coreStart.notifications.toasts),
}),
Expand All @@ -162,15 +156,12 @@ export class VisBuilderPlugin
types: typeService.start(),
savedVisBuilderLoader: selfStart.savedVisBuilderLoader,
embeddable: pluginsStart.embeddable,
setActiveUrl,
restorePreviousUrl,
dashboard: pluginsStart.dashboard,
};

// Instantiate the store
const store = await getPreloadedStore(services);

const unmount = renderApp(params, services, store);

// Render the application
return () => {
unlistenParentHistory();
Expand Down
4 changes: 0 additions & 4 deletions src/plugins/vis_builder/public/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import { TypeServiceSetup, TypeServiceStart } from './services/type_service';
import { SavedObjectLoader } from '../../saved_objects/public';
import { AppMountParameters, CoreStart, ToastsStart, ScopedHistory } from '../../../core/public';
import { IOsdUrlStateStorage } from '../../opensearch_dashboards_utils/public';
import { UrlForwardingSetup } from '../../url_forwarding/public';
import { DataPublicPluginSetup } from '../../data/public';

export type VisBuilderSetup = TypeServiceSetup;
Expand Down Expand Up @@ -50,9 +49,6 @@ export interface VisBuilderServices extends CoreStart {
embeddable: EmbeddableStart;
scopedHistory: ScopedHistory;
osdUrlStateStorage: IOsdUrlStateStorage;
setActiveUrl: (newUrl: string) => void;
restorePreviousUrl: () => void;
dashboard: DashboardStart;
}

export interface ISavedVis {
Expand Down

0 comments on commit 03eb18c

Please sign in to comment.