Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Rename unset options to reset
  • Loading branch information
mikachan committed Dec 5, 2024
commit d892300b51b0b4cecdbe9a1ab8e510ede76f15e3
16 changes: 8 additions & 8 deletions packages/editor/src/components/post-actions/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import { store as coreStore } from '@wordpress/core-data';
import { store as editorStore } from '../../store';
import { unlock } from '../../lock-unlock';
import { useSetAsHomepageAction } from './set-as-homepage';
import { useUnsetAsHomepageAction } from './unset-as-homepage';
import { useResetHomepageAction } from './reset-homepage';
import { useSetAsPostsPageAction } from './set-as-posts-page';
import { useUnsetAsPostsPageAction } from './unset-as-posts-page';
import { useResetPostsPageAction } from './reset-posts-page';

export function usePostActions( { postType, onActionPerformed, context } ) {
const { defaultActions } = useSelect(
Expand Down Expand Up @@ -46,9 +46,9 @@ export function usePostActions( { postType, onActionPerformed, context } ) {
);

const setAsHomepageAction = useSetAsHomepageAction();
const unsetAsHomepageAction = useUnsetAsHomepageAction();
const resetHomepageAction = useResetHomepageAction();
const setAsPostsPageAction = useSetAsPostsPageAction();
const unsetAsPostsPageAction = useUnsetAsPostsPageAction();
const resetPostsPageAction = useResetPostsPageAction();
const shouldShowHomepageActions =
canManageOptions && ! hasFrontPageTemplate;

Expand All @@ -62,9 +62,9 @@ export function usePostActions( { postType, onActionPerformed, context } ) {
if ( shouldShowHomepageActions ) {
actions.push(
setAsHomepageAction,
unsetAsHomepageAction,
resetHomepageAction,
setAsPostsPageAction,
unsetAsPostsPageAction
resetPostsPageAction
);
}

Expand Down Expand Up @@ -133,10 +133,10 @@ export function usePostActions( { postType, onActionPerformed, context } ) {
context,
defaultActions,
onActionPerformed,
resetHomepageAction,
resetPostsPageAction,
setAsHomepageAction,
setAsPostsPageAction,
shouldShowHomepageActions,
unsetAsHomepageAction,
unsetAsPostsPageAction,
] );
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,36 +18,25 @@ import { store as noticesStore } from '@wordpress/notices';
*/
import { getItemTitle } from '../../utils';

const UnsetAsHomepageModal = ( { items, closeModal } ) => {
const ResetHomepageModal = ( { items, closeModal } ) => {
const [ item ] = items;
const pageTitle = getItemTitle( item );
const { isPageForPostsSet, currentHomePage, isSaving } = useSelect(
( select ) => {
const { getEntityRecord, isSavingEntityRecord } =
select( coreStore );
const siteSettings = getEntityRecord( 'root', 'site' );
const currentHomePageItem = getEntityRecord(
'postType',
'page',
siteSettings?.page_on_front
);
return {
isPageForPostsSet: siteSettings?.page_for_posts !== 0,
currentHomePage: currentHomePageItem,
isSaving: isSavingEntityRecord( 'root', 'site' ),
};
}
);
const currentHomePageTitle = currentHomePage
? getItemTitle( currentHomePage )
: '';
const { isPageForPostsSet, isSaving } = useSelect( ( select ) => {
const { getEntityRecord, isSavingEntityRecord } = select( coreStore );
const siteSettings = getEntityRecord( 'root', 'site' );

return {
isPageForPostsSet: siteSettings?.page_for_posts !== 0,
isSaving: isSavingEntityRecord( 'root', 'site' ),
};
} );

const { saveEditedEntityRecord, saveEntityRecord } =
useDispatch( coreStore );
const { createSuccessNotice, createErrorNotice } =
useDispatch( noticesStore );

async function onUnsetPageAsHomepage( event ) {
async function onResetHomepage( event ) {
event.preventDefault();

try {
Expand All @@ -65,15 +54,15 @@ const UnsetAsHomepageModal = ( { items, closeModal } ) => {
show_on_front: isPageForPostsSet ? 'page' : 'posts',
} );

createSuccessNotice( __( 'Homepage unset' ), {
createSuccessNotice( __( 'Homepage reset' ), {
type: 'snackbar',
} );
} catch ( error ) {
const typedError = error;
const errorMessage =
typedError.message && typedError.code !== 'unknown_error'
? typedError.message
: __( 'An error occurred while unsetting the homepage' );
: __( 'An error occurred while resetting the homepage' );
createErrorNotice( errorMessage, { type: 'snackbar' } );
} finally {
closeModal?.();
Expand All @@ -82,24 +71,22 @@ const UnsetAsHomepageModal = ( { items, closeModal } ) => {

const modalWarning = ! isPageForPostsSet
? __( 'This will set the homepage to display latest posts.' )
: sprintf(
// translators: %s: title of the current home page.
__( 'This will replace the current homepage: "%s"' ),
currentHomePageTitle
);
: '';

const modalText = sprintf(
// translators: %1$s: title of the page to be unset as the homepage, %2$s: homepage replacement warning message.
__( 'Unset "%1$s" as the site homepage? %2$s' ),
__(
'Reset the site homepage? "%1$s" will no longer be set as the homepage. %2$s'
),
pageTitle,
modalWarning
);

// translators: Button label to confirm unsetting the specified page as the homepage.
const modalButtonLabel = __( 'Unset as homepage' );
// translators: Button label to confirm resetting the homepage.
const modalButtonLabel = __( 'Reset homepage' );

return (
<form onSubmit={ onUnsetPageAsHomepage }>
<form onSubmit={ onResetHomepage }>
<VStack spacing="5">
<Text>{ modalText }</Text>
<HStack justify="right">
Expand Down Expand Up @@ -129,7 +116,7 @@ const UnsetAsHomepageModal = ( { items, closeModal } ) => {
);
};

export const useUnsetAsHomepageAction = () => {
export const useResetHomepageAction = () => {
const { pageOnFront } = useSelect( ( select ) => {
const { getEntityRecord } = select( coreStore );
const siteSettings = getEntityRecord( 'root', 'site' );
Expand All @@ -140,16 +127,16 @@ export const useUnsetAsHomepageAction = () => {

return useMemo(
() => ( {
id: 'unset-as-homepage',
label: __( 'Unset as homepage' ),
id: 'reset-homepage',
label: __( 'Reset homepage' ),
isEligible( post ) {
if ( pageOnFront !== post.id ) {
return false;
}

return true;
},
RenderModal: UnsetAsHomepageModal,
RenderModal: ResetHomepageModal,
} ),
[ pageOnFront ]
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { store as noticesStore } from '@wordpress/notices';
*/
import { getItemTitle } from '../../utils';

const UnsetAsPostsPageModal = ( { items, closeModal } ) => {
const ResetPostsPageModal = ( { items, closeModal } ) => {
const [ item ] = items;
const pageTitle = getItemTitle( item );
const { isPageOnFrontSet, isSaving } = useSelect( ( select ) => {
Expand All @@ -35,7 +35,7 @@ const UnsetAsPostsPageModal = ( { items, closeModal } ) => {
const { createSuccessNotice, createErrorNotice } =
useDispatch( noticesStore );

async function onUnsetPageAsPostsPage( event ) {
async function onResetPostsPage( event ) {
event.preventDefault();

try {
Expand All @@ -53,15 +53,15 @@ const UnsetAsPostsPageModal = ( { items, closeModal } ) => {
show_on_front: isPageOnFrontSet ? 'page' : 'posts',
} );

createSuccessNotice( __( 'Posts page unset' ), {
createSuccessNotice( __( 'Posts page reset' ), {
type: 'snackbar',
} );
} catch ( error ) {
Copy link
Contributor

@t-hamano t-hamano Dec 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this exception error actually possible? Because saveEntityRecord doesn't seem to throw any exceptions by default.

https://github.com/WordPress/gutenberg/blob/add/more-homepage-actions/packages/core-data/README.md#saveentityrecord

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's nice to have the catch block anyway, to catch any other errors (like a network error maybe). But I completely see your point, I don't think saveEntityRecord throws any exceptions.

const typedError = error;
const errorMessage =
typedError.message && typedError.code !== 'unknown_error'
? typedError.message
: __( 'An error occurred while unsetting the posts page' );
: __( 'An error occurred while resetting the posts page' );
createErrorNotice( errorMessage, { type: 'snackbar' } );
} finally {
closeModal?.();
Expand All @@ -74,16 +74,18 @@ const UnsetAsPostsPageModal = ( { items, closeModal } ) => {

const modalText = sprintf(
// translators: %1$s: title of the page to be unset as the posts page, %2$s: post pages warning message.
__( 'Unset "%1$s" as the posts page? %2$s' ),
__(
'Reset the posts page? "%1$s" will no longer be the posts page. %2$s'
),
pageTitle,
modalWarning
);

// translators: Button label to confirm unsetting the specified page as the posts page.
const modalButtonLabel = __( 'Unset as posts page' );
// translators: Button label to confirm resetting the posts page.
const modalButtonLabel = __( 'Reset posts page' );

return (
<form onSubmit={ onUnsetPageAsPostsPage }>
<form onSubmit={ onResetPostsPage }>
<VStack spacing="5">
<Text>{ modalText }</Text>
<HStack justify="right">
Expand Down Expand Up @@ -113,7 +115,7 @@ const UnsetAsPostsPageModal = ( { items, closeModal } ) => {
);
};

export const useUnsetAsPostsPageAction = () => {
export const useResetPostsPageAction = () => {
const { pageForPosts } = useSelect( ( select ) => {
const { getEntityRecord } = select( coreStore );
const siteSettings = getEntityRecord( 'root', 'site' );
Expand All @@ -124,16 +126,16 @@ export const useUnsetAsPostsPageAction = () => {

return useMemo(
() => ( {
id: 'unset-as-posts-page',
label: __( 'Unset as posts page' ),
id: 'reset-posts-page',
label: __( 'Reset posts page' ),
isEligible( post ) {
if ( pageForPosts !== post.id ) {
return false;
}

return true;
},
RenderModal: UnsetAsPostsPageModal,
RenderModal: ResetPostsPageModal,
} ),
[ pageForPosts ]
);
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/specs/site-editor/homepage-settings.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ test.describe( 'Homepage Settings via Editor', () => {
page.getByRole( 'menuitem', { name: 'Set as posts page' } )
).toBeHidden();
await expect(
page.getByRole( 'menuitem', { name: 'Unset as homepage' } )
page.getByRole( 'menuitem', { name: 'Reset homepage' } )
).toBeVisible();

const samplePageTwo = page
Expand All @@ -110,7 +110,7 @@ test.describe( 'Homepage Settings via Editor', () => {
page.getByRole( 'menuitem', { name: 'Set as posts page' } )
).toBeHidden();
await expect(
page.getByRole( 'menuitem', { name: 'Unset as posts page' } )
page.getByRole( 'menuitem', { name: 'Reset posts page' } )
).toBeVisible();
} );
} );
Loading