Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Add Product Image Gallery #8235

Merged
merged 20 commits into from
Feb 14, 2023
Merged
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
38fcacb
Add Product Image Gallery #8233
gigitux Jan 18, 2023
2a1b52c
Merge branch 'trunk' of https://github.com/woocommerce/woocommerce-bl…
gigitux Jan 20, 2023
5f889e6
Merge branch 'trunk' of https://github.com/woocommerce/woocommerce-bl…
gigitux Jan 30, 2023
13dc046
Add Product Image Gallery block
gigitux Jan 30, 2023
1dc7baa
Merge branch 'trunk' of https://github.com/woocommerce/woocommerce-bl…
gigitux Jan 30, 2023
21a1fea
remove support global styles
gigitux Jan 30, 2023
d9900e0
remove support global styles
gigitux Jan 30, 2023
75d00bb
Merge branch 'add/8233-product-image-gallery-block' of https://github…
gigitux Jan 30, 2023
f8e00c9
Merge branch 'trunk' into add/8233-product-image-gallery-block
gigitux Jan 30, 2023
795a698
address CSS feedback
gigitux Jan 31, 2023
90c71d3
Merge branch 'add/8233-product-image-gallery-block' of https://github…
gigitux Jan 31, 2023
dc48ddf
add support for the custom classname
gigitux Jan 31, 2023
e526eff
remove save function
gigitux Jan 31, 2023
66595f1
add second parameter to the subscribe function
gigitux Feb 1, 2023
c701d7f
Merge branch 'trunk' of https://github.com/woocommerce/woocommerce-bl…
gigitux Feb 3, 2023
5a4ac3b
Merge branch 'trunk' of https://github.com/woocommerce/woocommerce-bl…
gigitux Feb 13, 2023
8aee841
update @types/wordpress__data package
gigitux Feb 13, 2023
32f97dd
update placeholder, icon and description
gigitux Feb 13, 2023
e3be328
update tsconfig
gigitux Feb 13, 2023
b6a8eb5
Merge branch 'trunk' into add/8233-product-image-gallery-block
gigitux Feb 13, 2023
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
…ocks into add/8233-product-image-gallery-block
  • Loading branch information
gigitux committed Jan 30, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit 1dc7baa5b186939bae9d93154c8ef65e726229df
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.wc-block-editor-product-gallery {
border-style: none;

img {
width: 500px;
height: 500px;
border-radius: inherit;
}
.wc-block-editor-product-gallery__gallery {
imanish003 marked this conversation as resolved.
Show resolved Hide resolved
img {
width: 100px;
height: 100px;
border-radius: inherit;
}
}
}
46 changes: 46 additions & 0 deletions assets/js/atomic/utils/register-block-single-product-template.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/**
* External dependencies
*/
import { getBlockType } from '@wordpress/blocks';
import { subscribe, select } from '@wordpress/data';

export const registerBlockSingleProductTemplate = ( {
registerBlockFn,
unregisterBlockFn,
blockName,
}: {
registerBlockFn: () => void;
unregisterBlockFn: () => void;
blockName: string;
} ) => {
let currentTemplateId: string | undefined;

subscribe( () => {
imanish003 marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

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

Could we use debounce here to make this trigger less frequent?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Mmm, I would avoid a debounce here to avoid any kind of race condition.

Copy link
Member

Choose a reason for hiding this comment

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

I'm curious what can be the race condition and its drawback. The motivation behind my suggestion is to keep the editor performant.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Mmm, for example, the user is editing another template, but the function isn't called due to the debounce and the block is still visible in the inserter.

Copy link
Member

@dinhtungdu dinhtungdu Feb 3, 2023

Choose a reason for hiding this comment

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

but the function isn't called due to the debounce

I don't think we will have this issue, as we just want to debounce them (by 100ms, for example), the subscription still triggers, but less frequently. So when the user switches to another template, the subscription may not trigger right away, but still fast enough to register/unregister the block before user interaction.

We don't have to do it now btw, we can go with the current PR and come back to this later when we see it affect the editor performance.

const previousTemplateId = currentTemplateId;
const store = select( 'core/edit-site' );
currentTemplateId = store?.getEditedPostId() as string | undefined;

if ( previousTemplateId === currentTemplateId ) {
return;
}

const parsedTemplate = currentTemplateId?.split( '//' )[ 1 ];

if ( parsedTemplate === null || parsedTemplate === undefined ) {
return;
}

const block = getBlockType( blockName );

if (
block === undefined &&
parsedTemplate.includes( 'single-product' )
) {
registerBlockFn();
}

if ( block !== undefined ) {
unregisterBlockFn();
}
} );
};
You are viewing a condensed version of this merge commit. You can view the full changes here.