Skip to content

Commit 5aea34d

Browse files
committed
fix: grayed out button when there are unsaved changes
1 parent 60296f6 commit 5aea34d

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

src/welcome/admin.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ const ToggleBlockDialog = ( {
234234
const Sidenav = ( {
235235
currentTab,
236236
handleTabChange,
237+
hasUnsavedChanges,
237238
handleSettingsSave,
238239
currentSearch,
239240
isSaving,
@@ -337,6 +338,11 @@ const Sidenav = ( {
337338
},
338339
], [] )
339340

341+
const saveButtonClasses = classnames( [
342+
's-save-changes',
343+
{ 's-button-has-unsaved-changes': hasUnsavedChanges },
344+
] )
345+
340346
return (
341347
<>
342348
<nav className="s-sidenav">
@@ -348,14 +354,14 @@ const Sidenav = ( {
348354
} ) => {
349355
const isSearched = currentSearch &&
350356
settings.some( setting => setting.toLowerCase().includes( currentSearch ) )
351-
const classes = classnames( [
357+
const tabClasses = classnames( [
352358
's-sidenav-item',
353359
{ 's-sidenav-item-highlight': isSearched },
354360
{ 's-active': currentTab === id },
355361
] )
356362
return ( <button
357363
key={ id }
358-
className={ classes }
364+
className={ tabClasses }
359365
onClick={ () => handleTabChange( id ) }
360366
onKeyDown={ () => handleTabChange( id ) }
361367
role="tab"
@@ -367,7 +373,7 @@ const Sidenav = ( {
367373
} ) }
368374
<div className="s-save-changes-wrapper">
369375
<button
370-
className="s-save-changes"
376+
className={ saveButtonClasses }
371377
onClick={ handleSettingsSave }
372378
>
373379
{ isSaving ? <Spinner /> : __( 'Save Changes', i18n ) }
@@ -439,10 +445,13 @@ const Settings = () => {
439445
currentSearch,
440446
}
441447

448+
const hasUnsavedChanges = useMemo( () => Object.keys( unsavedChanges ).length > 0, [ unsavedChanges ] )
449+
442450
return <>
443451
<Sidenav
444452
currentTab={ currentTab }
445453
handleTabChange={ setCurrentTab }
454+
hasUnsavedChanges={ hasUnsavedChanges }
446455
handleSettingsSave={ handleSettingsSave }
447456
currentSearch={ currentSearch }
448457
isSaving={ isSaving }

src/welcome/admin.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,6 +587,10 @@ body.toplevel_page_stk-custom-fields {
587587
opacity: 0.85;
588588
box-shadow: none !important;
589589
}
590+
&:not(.s-button-has-unsaved-changes) {
591+
opacity: 0.5;
592+
filter: grayscale(50%);
593+
}
590594
}
591595
}
592596
.s-search-setting {

0 commit comments

Comments
 (0)