aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/framework/src/flux/connect.ts
diff options
context:
space:
mode:
authorsai-neetha <sai-neetha.phulmali@highstreet-technologies.com>2023-03-20 08:05:47 +0100
committerhighstreetherbert <herbert.eiselt@highstreet-technologies.com>2023-03-29 19:06:25 +0200
commit15e2d3a29b0d1a304965e34f114a911e5a7abdb3 (patch)
tree711ef5616aceb115a1081cccd152eeae0e87bc79 /sdnr/wt/odlux/framework/src/flux/connect.ts
parentac5e2dc8f1ee4d5549f7260374e8164d52b07f55 (diff)
Odlux Update
Add eslint and custom icons update Issue-ID: CCSDK-3871 Signed-off-by: sai-neetha <sai-neetha.phulmali@highstreet-technologies.com> Change-Id: If6b676128cc9cff0437a5dc54f85eaafd3b8c586 Signed-off-by: highstreetherbert <herbert.eiselt@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wt/odlux/framework/src/flux/connect.ts')
-rw-r--r--sdnr/wt/odlux/framework/src/flux/connect.ts161
1 files changed, 0 insertions, 161 deletions
diff --git a/sdnr/wt/odlux/framework/src/flux/connect.ts b/sdnr/wt/odlux/framework/src/flux/connect.ts
deleted file mode 100644
index f54e4e0f0..000000000
--- a/sdnr/wt/odlux/framework/src/flux/connect.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import * as React from 'react';
-import * as PropTypes from 'prop-types';
-
-import { Dispatch } from '../flux/store';
-
-import { ApplicationStore, IApplicationStoreState } from '../store/applicationStore';
-
-interface IApplicationStoreContext {
- applicationStore: ApplicationStore;
-}
-
-export interface IDispatcher {
- dispatch: Dispatch;
-}
-
-interface IApplicationStoreProps {
- state: IApplicationStoreState;
-}
-
-interface IDispatchProps {
- dispatch: Dispatch;
-}
-
-type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>
-
-type ComponentDecoratorInfer<TMergedProps> = {
- <TProps>(wrappedComponent: React.ComponentType<TProps & TMergedProps>): React.ComponentClass<Omit<TProps & TMergedProps, keyof TMergedProps>>;
-};
-
-export type Connect<TMapProps extends ((...args: any) => any) | undefined = undefined, TMapDispatch extends ((...args: any) => any) | undefined = undefined> =
- (TMapProps extends ((...args: any) => any) ? ReturnType<TMapProps> : IApplicationStoreProps) &
- (TMapDispatch extends ((...args: any) => any) ? ReturnType<TMapDispatch> : IDispatchProps);
-
-export function connect(): ComponentDecoratorInfer<IApplicationStoreProps & IDispatchProps>;
-
-export function connect<TStateProps>(
- mapStateToProps: (state: IApplicationStoreState) => TStateProps
-): ComponentDecoratorInfer<TStateProps & IDispatchProps>;
-
-export function connect<TStateProps, TDispatchProps>(
- mapStateToProps: (state: IApplicationStoreState) => TStateProps,
- mapDispatchToProps: (dispatcher: IDispatcher) => TDispatchProps
-): ComponentDecoratorInfer<TStateProps & TDispatchProps>;
-
-
-export function connect<TDispatchProps>(
- mapStateToProps: undefined,
- mapDispatchToProps: (dispatcher: IDispatcher) => TDispatchProps
-): ComponentDecoratorInfer<IApplicationStoreProps & TDispatchProps>;
-
-
-export function connect<TProps, TStateProps, TDispatchProps>(
- mapStateToProps?: ((state: IApplicationStoreState) => TStateProps),
- mapDispatchToProps?: ((dispatcher: IDispatcher) => TDispatchProps)
-):
- ((WrappedComponent: React.ComponentType<TProps & (IApplicationStoreProps | TStateProps) & IDispatchProps>) => React.ComponentType<TProps>) {
-
- const injectApplicationStore = (WrappedComponent: React.ComponentType<TProps & (IApplicationStoreProps | TStateProps) & IDispatchProps>): React.ComponentType<TProps> => {
-
- class StoreAdapter extends React.Component<TProps, {}> {
- public static contextTypes = { ...WrappedComponent.contextTypes, applicationStore: PropTypes.object.isRequired };
- context: IApplicationStoreContext;
-
- render(): JSX.Element {
-
- if (isWrappedComponentIsVersion1(WrappedComponent)) {
- const element = React.createElement(WrappedComponent, { ...(this.props as any), state: this.store.state, dispatch: this.store.dispatch.bind(this.store) });
- return element;
- } else if (mapStateToProps && isWrappedComponentIsVersion2(WrappedComponent)) {
- const element = React.createElement(WrappedComponent, { ...(this.props as any), ...(mapStateToProps(this.store.state) as any), dispatch: this.store.dispatch.bind(this.store) });
- return element;
- } else if (mapStateToProps && mapDispatchToProps && isWrappedComponentIsVersion3(WrappedComponent)) {
- const element = React.createElement(WrappedComponent, { ...(this.props as any), ...(mapStateToProps(this.store.state) as any), ...(mapDispatchToProps({ dispatch: this.store.dispatch.bind(this.store) }) as any) });
- return element;
- } else if (!mapStateToProps && mapDispatchToProps && isWrappedComponentIsVersion4(WrappedComponent)) {
- const element = React.createElement(WrappedComponent, { ...(this.props as any), state: this.store.state, ...(mapDispatchToProps({ dispatch: this.store.dispatch.bind(this.store) }) as any) });
- return element;
- }
- throw new Error("Invalid arguments in connect.");
- }
-
- componentDidMount(): void {
- this.store && this.store.changed.addHandler(this.handleStoreChanged);
- }
-
- componentWillUnmount(): void {
- this.store && this.store.changed.removeHandler(this.handleStoreChanged);
- }
-
- private get store(): ApplicationStore {
- return this.context.applicationStore;
- }
-
- private handleStoreChanged = () => {
- this.forceUpdate();
- }
- }
-
- return StoreAdapter;
- }
-
-
- return injectApplicationStore;
-
- /* inline methods */
-
- function isWrappedComponentIsVersion1(wrappedComponent: any): wrappedComponent is React.ComponentType<TProps & IApplicationStoreProps & IDispatchProps> {
- return !mapStateToProps && !mapDispatchToProps;
- }
-
- function isWrappedComponentIsVersion2(wrappedComponent: any): wrappedComponent is React.ComponentType<TProps & TStateProps & IDispatchProps> {
- return !!mapStateToProps && !mapDispatchToProps;
- }
-
- function isWrappedComponentIsVersion3(wrappedComponent: any): wrappedComponent is React.ComponentType<TProps & TStateProps & TDispatchProps> {
- return !!mapStateToProps && !!mapDispatchToProps;
- }
-
- function isWrappedComponentIsVersion4(wrappedComponent: any): wrappedComponent is React.ComponentType<TProps & TStateProps & TDispatchProps> {
- return !mapStateToProps && !!mapDispatchToProps;
- }
-}
-
-interface ApplicationStoreProviderProps extends React.Props<ApplicationStoreProvider> {
- applicationStore: ApplicationStore;
-}
-
-export class ApplicationStoreProvider extends React.Component<ApplicationStoreProviderProps>
- implements /* React.ComponentLifecycle<ApplicationStoreProviderProps, any>, */ React.ChildContextProvider<IApplicationStoreContext> {
-
- public static childContextTypes = { applicationStore: PropTypes.object.isRequired };
-
- getChildContext(): IApplicationStoreContext {
- return {
- applicationStore: this.props.applicationStore
- };
- }
-
- render(): JSX.Element {
- return React.Children.only(this.props.children) as any; //type error, fix when possible
- }
-}
-
-export default connect; \ No newline at end of file