File tree Expand file tree Collapse file tree 8 files changed +36
-8
lines changed
Expand file tree Collapse file tree 8 files changed +36
-8
lines changed Original file line number Diff line number Diff line change 1+ import type { Options } from 'overtype'
2+
3+ export const commonGithubOptions : Options = {
4+ autoResize : true ,
5+ lineHeight : 'var(--text-body-lineHeight-medium, 1.4285)' ,
6+ padding : 'var(--base-size-16)' ,
7+ }
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import OverType, { type OverTypeInstance } from 'overtype'
22import type { CommentEnhancer , CommentSpot } from '../../enhancer'
33import { logger } from '../../logger'
44import { modifyDOM } from '../modifyDOM'
5+ import { commonGithubOptions } from './ghOptions'
56import { githubHighlighter } from './githubHighlighter'
67
78interface GitHubIssueAddCommentSpot extends CommentSpot {
@@ -47,9 +48,8 @@ export class GitHubIssueAddCommentEnhancer implements CommentEnhancer<GitHubIssu
4748 enhance ( textArea : HTMLTextAreaElement , _spot : GitHubIssueAddCommentSpot ) : OverTypeInstance {
4849 const overtypeContainer = modifyDOM ( textArea )
4950 return new OverType ( overtypeContainer , {
50- autoResize : true ,
51+ ... commonGithubOptions ,
5152 minHeight : '100px' ,
52- padding : 'var(--base-size-16)' ,
5353 placeholder : 'Use Markdown to format your comment' ,
5454 } ) [ 0 ] !
5555 }
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import OverType, { type OverTypeInstance } from 'overtype'
22import type { CommentEnhancer , CommentSpot } from '../../enhancer'
33import { logger } from '../../logger'
44import { modifyDOM } from '../modifyDOM'
5+ import { commonGithubOptions } from './ghOptions'
56import { githubHighlighter } from './githubHighlighter'
67
78interface GitHubIssueNewCommentSpot extends CommentSpot {
@@ -45,9 +46,8 @@ export class GitHubIssueNewCommentEnhancer implements CommentEnhancer<GitHubIssu
4546 enhance ( textArea : HTMLTextAreaElement , _spot : GitHubIssueNewCommentSpot ) : OverTypeInstance {
4647 const overtypeContainer = modifyDOM ( textArea )
4748 return new OverType ( overtypeContainer , {
48- autoResize : true ,
49+ ... commonGithubOptions ,
4950 minHeight : '400px' ,
50- padding : 'var(--base-size-16)' ,
5151 placeholder : 'Type your description here...' ,
5252 } ) [ 0 ] !
5353 }
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import OverType, { type OverTypeInstance } from 'overtype'
22import type { CommentEnhancer , CommentSpot } from '../../enhancer'
33import { logger } from '../../logger'
44import { modifyDOM } from '../modifyDOM'
5+ import { commonGithubOptions } from './ghOptions'
56import { githubHighlighter } from './githubHighlighter'
67
78interface GitHubPRAddCommentSpot extends CommentSpot {
@@ -51,7 +52,7 @@ export class GitHubPRAddCommentEnhancer implements CommentEnhancer<GitHubPRAddCo
5152 enhance ( textArea : HTMLTextAreaElement , _spot : GitHubPRAddCommentSpot ) : OverTypeInstance {
5253 const overtypeContainer = modifyDOM ( textArea )
5354 return new OverType ( overtypeContainer , {
54- autoResize : true ,
55+ ... commonGithubOptions ,
5556 minHeight : '102px' ,
5657 padding : 'var(--base-size-8)' ,
5758 placeholder : 'Add your comment here...' ,
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import OverType, { type OverTypeInstance } from 'overtype'
22import type { CommentEnhancer , CommentSpot } from '../../enhancer'
33import { logger } from '../../logger'
44import { modifyDOM } from '../modifyDOM'
5+ import { commonGithubOptions } from './ghOptions'
56import { githubHighlighter } from './githubHighlighter'
67
78interface GitHubPRNewCommentSpot extends CommentSpot {
@@ -50,9 +51,8 @@ export class GitHubPRNewCommentEnhancer implements CommentEnhancer<GitHubPRNewCo
5051 enhance ( textArea : HTMLTextAreaElement , _spot : GitHubPRNewCommentSpot ) : OverTypeInstance {
5152 const overtypeContainer = modifyDOM ( textArea )
5253 return new OverType ( overtypeContainer , {
53- autoResize : true ,
54+ ... commonGithubOptions ,
5455 minHeight : '250px' ,
55- padding : 'var(--base-size-16)' ,
5656 placeholder : 'Type your description here...' ,
5757 } ) [ 0 ] !
5858 }
Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ export class EnhancerRegistry {
6969 this . preparedEnhancers . add ( enhancer )
7070 }
7171 const overtype = enhancer . enhance ( textarea , spot )
72+ this . handleDelayedValueInjection ( overtype )
7273 return { enhancer, overtype, spot, textarea }
7374 }
7475 } catch ( error ) {
@@ -78,6 +79,24 @@ export class EnhancerRegistry {
7879 return null
7980 }
8081
82+ private handleDelayedValueInjection ( overtype : OverTypeInstance ) : void {
83+ // GitHub sometimes injects textarea content after a delay
84+ // We need to trigger OverType to update its preview after such injections
85+ // https://github.com/diffplug/gitcasso/issues/46
86+ setTimeout ( ( ) => {
87+ overtype . updatePreview ( )
88+ } , 100 )
89+ setTimeout ( ( ) => {
90+ overtype . updatePreview ( )
91+ } , 200 )
92+ setTimeout ( ( ) => {
93+ overtype . updatePreview ( )
94+ } , 400 )
95+ setTimeout ( ( ) => {
96+ overtype . updatePreview ( )
97+ } , 8000 )
98+ }
99+
81100 getEnhancerCount ( ) : number {
82101 return this . enhancers . size
83102 }
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ vi.mock('overtype', () => {
1818 preview : document . createElement ( 'div' ) ,
1919 setValue : vi . fn ( ) ,
2020 textarea : document . createElement ( 'textarea' ) ,
21+ updatePreview : vi . fn ( ) ,
2122 wrapper : document . createElement ( 'div' ) ,
2223 } ,
2324 ] )
You can’t perform that action at this time.
0 commit comments