* Initial scaffolding for comments CRUD APIs * add actions * add assets * state management for existing comments and creating new * add ui components * add overlay comments wrapper to baseWidget * add toggle comment mode button at editor header * trigger tests * Disallow commenting as someone else * Add applicationId for comments * lint * Add overlay blacklist to prevent component interaction while adding comments * Comment thread style updates * Placeholder comment context menu * Controlled comment thread visibility for making new comments visible by default * Update comment type description * Reset input on save * Resolve comment thread button ui * fix close on esc key, dont create new comment on outside click * Submit on enter * add emoji picker * Attempt at adding a websocket server in Java * CRUD APIs for comment threads * Add API for getting all threads in application * Move types to a separate file * Initial commit for real time server (RTS) * Add script to start RTS * Fix position property * Use create comment thread API * Use add comment to thread API * Add custom cursor * Dispatch logout init on 401 errors * Allow CORS for real time connection * Add more logs to RTS * Fix construction of MongoClient * WIP: Real time comments * Enable comments * Minor updates * Read backend API base URL from environment * Escape to reset comments mode * Set popover position as auto and boundary as scroll parent * Disable warning * Added permissions for comment threads * Add resolved API for comment threads * Migration to set commenting permission on existing apps * Fix updates bringing the RTS down * Show view latest button, scroll to bottom on creating a new comment * Cleanup comment reducer * Move to typescript for RTS * Add missing server.ts and tsconfig files * Resolve / unresolve comment * Scaffold app comments * Minor fixes: comment on top of all widgets, add toggle button at viewer header * Reconnect socket on creating a new app, set connected status in store * Retry socket connection flow * Integration tests for comments with api mocks using msw * Fix circular depependency * rm file * Minor cleanup and comments * Minor refactors: move isScrolledToBottom to common hooks, decouple prevent interactions overlay from comments wrapper * Use policies when pushing updates in RTS * ENV var to set if comments are enabled * Fix: check if editor/viewer is initialised before waiting for init action * Add tests for comments reducer * Revert "ENV var to set if comments are enabled" This reverts commit 988efeaa69d378d943a387e1e73510334958adc5. * Enable comments for users with appsmith email * lint * fix * Try running a socket.io server inside backend * Update comment reducer tests * Init mentions within comments * Fix comment thread updates with email rooms * Minor fixes * Refactors / review suggestions * lint * increase cache limit for builds * Comment out tests for feature that's under development * Add Dockerfile for RTS * Fix policies missing for first comment in threads * Use draftJS for comments input with mentions support * fix fixtures * Use thread's policies when querying for threads * Update socket.io to v4 * Add support for richer body with mentions * Update comment body type to RawDraftContentState * fix stale method * Fix mentions search * Minor cleanups * Comment context menu and thread UI updates * revert: Scaffold app comments * Yarn dependencies * Delete comment using id api added * Init app comments * Add test for creating thread * Api for delete comment with id * Test comment creation response and policies * Copy comment links * Fix reset editor state * Delete valid comment testcase added * Delete comment TC : code refactor * Don't allow creating comments with an empty body * Pin comments WIP[] * Ignore dependency-reduced-pom.xml files from VCS * Cleanup of some dev-only files, for review * Delete comment * Update socket.io to v4 in RTS * Pin and resolve comment thread object added in commentThread * Pin and resolve comment thread object added in commentThread * Update comment thread API * Added creationTime and updationTime in comment thread response * Added creationTime and updationTime in comment thread response * Added human readable id to comment threads, fallback to username for null name in user document * Refactor * lint * fix test, rm duplicate selector * comment out saga used for dev * CommentThread viewed status, username fallback for getName=null, username field added in pin & resolve status * lint * trigger tests Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com> Co-authored-by: Abhijeet <abhi.nagarnaik@gmail.com>
106 lines
4.8 KiB
TypeScript
106 lines
4.8 KiB
TypeScript
import { combineReducers } from "redux";
|
|
import entityReducer from "./entityReducers";
|
|
import uiReducer from "./uiReducers";
|
|
import evaluationsReducer from "./evaluationReducers";
|
|
import { reducer as formReducer } from "redux-form";
|
|
import { CanvasWidgetsReduxState } from "./entityReducers/canvasWidgetsReducer";
|
|
import { EditorReduxState } from "./uiReducers/editorReducer";
|
|
import { ErrorReduxState } from "./uiReducers/errorReducer";
|
|
import { ActionDataState } from "./entityReducers/actionsReducer";
|
|
import { PropertyPaneReduxState } from "./uiReducers/propertyPaneReducer";
|
|
import { WidgetConfigReducerState } from "./entityReducers/widgetConfigReducer";
|
|
import { WidgetSidebarReduxState } from "./uiReducers/widgetSidebarReducer";
|
|
import { DatasourceDataState } from "./entityReducers/datasourceReducer";
|
|
import { AppViewReduxState } from "./uiReducers/appViewReducer";
|
|
import { DatasourcePaneReduxState } from "./uiReducers/datasourcePaneReducer";
|
|
import { ApplicationsReduxState } from "./uiReducers/applicationsReducer";
|
|
import { PageListReduxState } from "./entityReducers/pageListReducer";
|
|
import { ApiPaneReduxState } from "./uiReducers/apiPaneReducer";
|
|
import { QueryPaneReduxState } from "./uiReducers/queryPaneReducer";
|
|
import { PluginDataState } from "reducers/entityReducers/pluginsReducer";
|
|
import { AuthState } from "reducers/uiReducers/authReducer";
|
|
import { OrgReduxState } from "reducers/uiReducers/orgReducer";
|
|
import { UsersReduxState } from "reducers/uiReducers/usersReducer";
|
|
import { ThemeState } from "reducers/uiReducers/themeReducer";
|
|
import { WidgetDragResizeState } from "reducers/uiReducers/dragResizeReducer";
|
|
import { ImportedCollectionsReduxState } from "reducers/uiReducers/importedCollectionsReducer";
|
|
import { ProvidersReduxState } from "reducers/uiReducers/providerReducer";
|
|
import { MetaState } from "./entityReducers/metaReducer";
|
|
import { ImportReduxState } from "reducers/uiReducers/importReducer";
|
|
import { HelpReduxState } from "./uiReducers/helpReducer";
|
|
import { ApiNameReduxState } from "./uiReducers/apiNameReducer";
|
|
import { ExplorerReduxState } from "./uiReducers/explorerReducer";
|
|
import { PageCanvasStructureReduxState } from "reducers/uiReducers/pageCanvasStructureReducer";
|
|
import { ConfirmRunActionReduxState } from "./uiReducers/confirmRunActionReducer";
|
|
import { AppDataState } from "reducers/entityReducers/appReducer";
|
|
import { DatasourceNameReduxState } from "./uiReducers/datasourceNameReducer";
|
|
import { EvaluatedTreeState } from "./evaluationReducers/treeReducer";
|
|
import { EvaluationDependencyState } from "./evaluationReducers/dependencyReducer";
|
|
import { PageWidgetsReduxState } from "./uiReducers/pageWidgetsReducer";
|
|
import { OnboardingState } from "./uiReducers/onBoardingReducer";
|
|
import { GlobalSearchReduxState } from "./uiReducers/globalSearchReducer";
|
|
import { ReleasesState } from "./uiReducers/releasesReducer";
|
|
import { LoadingEntitiesState } from "./evaluationReducers/loadingEntitiesReducer";
|
|
import { CommentsReduxState } from "./uiReducers/commentsReducer/interfaces";
|
|
import { WebsocketReduxState } from "./uiReducers/websocketReducer";
|
|
import { DebuggerReduxState } from "./uiReducers/debuggerReducer";
|
|
|
|
const appReducer = combineReducers({
|
|
entities: entityReducer,
|
|
ui: uiReducer,
|
|
evaluations: evaluationsReducer,
|
|
form: formReducer,
|
|
});
|
|
|
|
export default appReducer;
|
|
|
|
export interface AppState {
|
|
ui: {
|
|
widgetSidebar: WidgetSidebarReduxState;
|
|
editor: EditorReduxState;
|
|
propertyPane: PropertyPaneReduxState;
|
|
errors: ErrorReduxState;
|
|
appView: AppViewReduxState;
|
|
applications: ApplicationsReduxState;
|
|
apiPane: ApiPaneReduxState;
|
|
auth: AuthState;
|
|
orgs: OrgReduxState;
|
|
users: UsersReduxState;
|
|
widgetDragResize: WidgetDragResizeState;
|
|
importedCollections: ImportedCollectionsReduxState;
|
|
providers: ProvidersReduxState;
|
|
imports: ImportReduxState;
|
|
queryPane: QueryPaneReduxState;
|
|
datasourcePane: DatasourcePaneReduxState;
|
|
help: HelpReduxState;
|
|
apiName: ApiNameReduxState;
|
|
explorer: ExplorerReduxState;
|
|
pageCanvasStructure: PageCanvasStructureReduxState;
|
|
pageWidgets: PageWidgetsReduxState;
|
|
confirmRunAction: ConfirmRunActionReduxState;
|
|
datasourceName: DatasourceNameReduxState;
|
|
theme: ThemeState;
|
|
onBoarding: OnboardingState;
|
|
globalSearch: GlobalSearchReduxState;
|
|
releases: ReleasesState;
|
|
comments: CommentsReduxState;
|
|
websocket: WebsocketReduxState;
|
|
debugger: DebuggerReduxState;
|
|
};
|
|
entities: {
|
|
canvasWidgets: CanvasWidgetsReduxState;
|
|
actions: ActionDataState;
|
|
widgetConfig: WidgetConfigReducerState;
|
|
datasources: DatasourceDataState;
|
|
pageList: PageListReduxState;
|
|
plugins: PluginDataState;
|
|
meta: MetaState;
|
|
app: AppDataState;
|
|
};
|
|
evaluations: {
|
|
tree: EvaluatedTreeState;
|
|
dependencies: EvaluationDependencyState;
|
|
loadingEntities: LoadingEntitiesState;
|
|
};
|
|
}
|