Skip to content

#11930 - rewrite packages\ketcher-react\src\script\ui\action\copyImageToClipboard.js from JavaScript to TypeScript - #11944

Open
armankarapetyan-svg wants to merge 2 commits into
masterfrom
11930-lets-rewrite-packagesketcher-reactsrcscriptuiactioncopyimagetoclipboardjs-from-javascript-to-typescript
Open

armankarapetyan-svg wants to merge 2 commits into
masterfrom
11930-lets-rewrite-packagesketcher-reactsrcscriptuiactioncopyimagetoclipboardjs-from-javascript-to-typescript

Conversation

@armankarapetyan-svg

@armankarapetyan-svg armankarapetyan-svg commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator

How the feature works? / How did you fix the issue?

(Screenshots, videos, or GIFs, if applicable)

Files Created:
types.ts (new file)

  • Defined CurrentAppState interface that types the global currentState variable

  • Contains editor (KetcherEditor) and options (OptionsState) properties

  • Eliminates implicit any types for the global state

    copyImageToClipboard.ts (converted from .js)

  • Renamed file extension from .js to .ts

  • Added return type annotation Promise to function

  • All variables have explicit types:

  • state: CurrentAppState - types the global state

  • editor: KetcherEditor - imported from ketcher-core

  • options: OptionsState - imported from store.types

  • struct: Struct - return type of structSelected()

  • errorHandler: ((message: string) => void) | null - from editor

  • structStr: string - serialized structure

  • generateImageOptions: GenerateImageOptions - from ketcher-core

  • image: Blob - return type of generateImage()

  • e: unknown - catch block error (safer than any)

Added global Window interface declaration to properly type global.currentState
Imported GenerateImageOptions from ketcher-core for type compatibility
Added null check for errorHandler before calling
Files Removed:
copyImageToClipboard.js (original JavaScript file)

Check list

  • unit-tests written
  • e2e-tests written
  • documentation updated
  • PR name follows the pattern #1234 – issue name
  • branch name doesn't contain '#'
  • PR is linked with the issue
  • base branch (master or release/xx) is correct
  • task status changed to "Code review"
  • reviewers are notified about the pull request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Let's rewrite packages\ketcher-react\src\script\ui\action\copyImageToClipboard.js from JavaScript to TypeScript

1 participant