83 lines
2.5 KiB
TypeScript
83 lines
2.5 KiB
TypeScript
![]() |
import { ActionType as CompileActionType, ChangeEntrypointAction as ChangeCompileEntrypointAction } from './compile';
|
||
|
import {
|
||
|
ActionType as DeployActionType,
|
||
|
ChangeEntrypointAction as ChangeDeployEntrypointAction,
|
||
|
ChangeStorageAction as ChangeDeployStorageAction,
|
||
|
UseTezBridgeAction,
|
||
|
} from './deploy';
|
||
|
import {
|
||
|
ActionType as DryRunActionType,
|
||
|
ChangeEntrypointAction as ChangeDryRunEntrypointAction,
|
||
|
ChangeParametersAction as ChangeDryRunParametersAction,
|
||
|
ChangeStorageAction as ChangeDryRunStorageAction,
|
||
|
} from './dry-run';
|
||
|
import { ActionType as EditorActionType, ChangeCodeAction, ChangeLanguageAction } from './editor';
|
||
|
import {
|
||
|
ActionType as EvaluateFunctionActionType,
|
||
|
ChangeEntrypointAction as ChangeEvaluateFunctionEntrypointAction,
|
||
|
ChangeParametersAction as ChangeEvaluateFunctionParametersAction,
|
||
|
} from './evaluate-function';
|
||
|
import {
|
||
|
ActionType as EvaluateValueActionType,
|
||
|
ChangeEntrypointAction as ChangeEvaluateValueEntrypointAction,
|
||
|
} from './evaluate-value';
|
||
|
|
||
|
export enum ActionType {
|
||
|
ChangeShareLink = 'share-change-link'
|
||
|
}
|
||
|
|
||
|
export interface ShareState {
|
||
|
link: string;
|
||
|
}
|
||
|
|
||
|
export class ChangeShareLinkAction {
|
||
|
public readonly type = ActionType.ChangeShareLink;
|
||
|
constructor(public payload: ShareState['link']) {}
|
||
|
}
|
||
|
|
||
|
type Action =
|
||
|
| ChangeShareLinkAction
|
||
|
| ChangeCodeAction
|
||
|
| ChangeLanguageAction
|
||
|
| ChangeCompileEntrypointAction
|
||
|
| ChangeDeployEntrypointAction
|
||
|
| ChangeDeployStorageAction
|
||
|
| UseTezBridgeAction
|
||
|
| ChangeDryRunEntrypointAction
|
||
|
| ChangeDryRunParametersAction
|
||
|
| ChangeDryRunStorageAction
|
||
|
| ChangeEvaluateFunctionEntrypointAction
|
||
|
| ChangeEvaluateFunctionParametersAction
|
||
|
| ChangeEvaluateValueEntrypointAction;
|
||
|
|
||
|
const DEFAULT_STATE: ShareState = {
|
||
|
link: ''
|
||
|
};
|
||
|
|
||
|
export default (state = DEFAULT_STATE, action: Action): ShareState => {
|
||
|
switch (action.type) {
|
||
|
case EditorActionType.ChangeCode:
|
||
|
case EditorActionType.ChangeLanguage:
|
||
|
case CompileActionType.ChangeEntrypoint:
|
||
|
case DeployActionType.ChangeEntrypoint:
|
||
|
case DeployActionType.ChangeStorage:
|
||
|
case DeployActionType.UseTezBridge:
|
||
|
case DryRunActionType.ChangeEntrypoint:
|
||
|
case DryRunActionType.ChangeParameters:
|
||
|
case DryRunActionType.ChangeStorage:
|
||
|
case EvaluateFunctionActionType.ChangeEntrypoint:
|
||
|
case EvaluateFunctionActionType.ChangeParameters:
|
||
|
case EvaluateValueActionType.ChangeEntrypoint:
|
||
|
return {
|
||
|
...state,
|
||
|
...DEFAULT_STATE
|
||
|
};
|
||
|
case ActionType.ChangeShareLink:
|
||
|
return {
|
||
|
...state,
|
||
|
link: action.payload
|
||
|
};
|
||
|
}
|
||
|
return state;
|
||
|
};
|