@@ -31,10 +31,12 @@ export default async function ({ feature, console }) {
3131 textarea . value = uncenteredLines . join ( "\n" ) ;
3232 }
3333
34- function centerAlignText ( ) {
34+ function centerAlignText ( textarea ) {
35+ if ( ! feature . self . enabled ) return ;
36+
3537 const form = document . querySelector ( ".project-notes" ) ;
3638 if ( form ) {
37- const activeElement = document . activeElement ;
39+ const activeElement = textarea || document . activeElement ;
3840 if (
3941 activeElement . tagName === "TEXTAREA" &&
4042 form . contains ( activeElement )
@@ -46,7 +48,8 @@ export default async function ({ feature, console }) {
4648 const centeredLines = lines . map ( ( line ) => {
4749 const textWidth = getTextWidth ( line ) ;
4850 const totalSpaces = ( availableWidth - textWidth ) / spaceWidth / 2 ;
49- const spaces = " " . repeat ( Math . floor ( totalSpaces ) ) ;
51+ const spaces =
52+ totalSpaces > 0 ? " " . repeat ( Math . floor ( totalSpaces ) ) : "" ;
5053 return spaces + line ;
5154 } ) ;
5255 activeElement . value = centeredLines . join ( "\n" ) ;
@@ -56,7 +59,38 @@ export default async function ({ feature, console }) {
5659
5760 window . addEventListener ( "keydown" , ( event ) => {
5861 if ( ( event . ctrlKey || event . metaKey ) && event . key === "u" ) {
59- centerAlignText ( ) ;
62+ if ( feature . settings . get ( "use-align-hotkey" ) ) {
63+ centerAlignText ( ) ;
64+ }
6065 }
6166 } ) ;
67+
68+ console . log ( "hey" ) ;
69+
70+ ScratchTools . waitForElements (
71+ ".project-notes .project-textlabel" ,
72+ function ( div ) {
73+ if ( div . querySelector ( ".ste-align-center" ) ) return ;
74+
75+ let textarea = div . parentElement . querySelector ( "textarea" ) ;
76+
77+ let img = document . createElement ( "img" ) ;
78+ img . src = feature . self . getResource ( "center-align" ) ;
79+ img . className = "ste-align-center" ;
80+ img . addEventListener ( "click" , function ( ) {
81+ centerAlignText ( textarea ) ;
82+ } ) ;
83+ feature . self . hideOnDisable ( img ) ;
84+
85+ div . appendChild ( img ) ;
86+
87+ textarea . addEventListener ( "focusin" , function ( ) {
88+ img . classList . add ( "show" ) ;
89+ } ) ;
90+
91+ textarea . addEventListener ( "focusout" , function ( ) {
92+ img . classList . remove ( "show" ) ;
93+ } ) ;
94+ }
95+ ) ;
6296}
0 commit comments