-
Notifications
You must be signed in to change notification settings - Fork 3.9k
fix: Drag and Resize events for workspace comments #8217
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
Merged
johnnesky
merged 7 commits into
RaspberryPiFoundation:develop
from
johnnesky:nesky_drag_comment
Jun 26, 2024
Merged
Changes from 3 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
1e2840c
feat: Added a comment_drag event.
johnnesky 4e6e3c5
Merge branch 'develop' into nesky_drag_comment
johnnesky f358a88
Add workspace comment resize events.
johnnesky 64af3c9
Merge branch 'develop' into nesky_drag_comment
johnnesky 301d81e
Addressing PR feedback.
johnnesky 3169260
Fixed chai imports in new test files.
johnnesky 044b5bc
Addressing more PR feedback.
johnnesky File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,101 @@ | ||
| /** | ||
| * @license | ||
| * Copyright 2024 Google LLC | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| /** | ||
| * Events fired when a workspace comment is dragged. | ||
| * | ||
| * @class | ||
| */ | ||
|
|
||
| import type {WorkspaceComment} from '../comments/workspace_comment.js'; | ||
| import * as registry from '../registry.js'; | ||
| import {AbstractEventJson} from './events_abstract.js'; | ||
| import {UiBase} from './events_ui_base.js'; | ||
| import * as eventUtils from './utils.js'; | ||
| import {Workspace} from '../workspace.js'; | ||
|
|
||
| /** | ||
| * Notifies listeners when a comment is being manually dragged/dropped. | ||
| */ | ||
| export class CommentDrag extends UiBase { | ||
| /** The ID of the top-level comment being dragged. */ | ||
| commentId?: string; | ||
|
|
||
| /** True if this is the start of a drag, false if this is the end of one. */ | ||
| isStart?: boolean; | ||
|
|
||
| override type = eventUtils.COMMENT_DRAG; | ||
|
|
||
| /** | ||
| * @param opt_comment The comment that is being dragged. | ||
| * Undefined for a blank event. | ||
| * @param opt_isStart Whether this is the start of a comment drag. | ||
| * Undefined for a blank event. | ||
| */ | ||
| constructor(opt_comment?: WorkspaceComment, opt_isStart?: boolean) { | ||
| const workspaceId = opt_comment ? opt_comment.workspace.id : undefined; | ||
| super(workspaceId); | ||
| if (!opt_comment) return; | ||
|
|
||
| this.commentId = opt_comment.id; | ||
| this.isStart = opt_isStart; | ||
| } | ||
|
|
||
| /** | ||
| * Encode the event as JSON. | ||
| * | ||
| * @returns JSON representation. | ||
| */ | ||
| override toJson(): CommentDragJson { | ||
| const json = super.toJson() as CommentDragJson; | ||
| if (this.isStart === undefined) { | ||
| throw new Error( | ||
| 'Whether this event is the start of a drag is undefined. ' + | ||
| 'Either pass the value to the constructor, or call fromJson', | ||
| ); | ||
| } | ||
| if (this.commentId === undefined) { | ||
| throw new Error( | ||
| 'The comment ID is undefined. Either pass a comment to ' + | ||
| 'the constructor, or call fromJson', | ||
| ); | ||
| } | ||
| json['isStart'] = this.isStart; | ||
| json['commentId'] = this.commentId; | ||
| return json; | ||
| } | ||
|
|
||
| /** | ||
| * Deserializes the JSON event. | ||
| * | ||
| * @param event The event to append new properties to. Should be a subclass | ||
| * of CommentDrag, but we can't specify that due to the fact that parameters | ||
| * to static methods in subclasses must be supertypes of parameters to | ||
| * static methods in superclasses.. | ||
|
johnnesky marked this conversation as resolved.
Outdated
|
||
| * @internal | ||
| */ | ||
| static fromJson( | ||
| json: CommentDragJson, | ||
| workspace: Workspace, | ||
| event?: any, | ||
| ): CommentDrag { | ||
| const newEvent = super.fromJson( | ||
| json, | ||
| workspace, | ||
| event ?? new CommentDrag(), | ||
| ) as CommentDrag; | ||
| newEvent.isStart = json['isStart']; | ||
| newEvent.commentId = json['commentId']; | ||
| return newEvent; | ||
| } | ||
| } | ||
|
|
||
| export interface CommentDragJson extends AbstractEventJson { | ||
| isStart: boolean; | ||
| commentId: string; | ||
| } | ||
|
|
||
| registry.register(registry.Type.EVENT, eventUtils.COMMENT_DRAG, CommentDrag); | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.