本文整理汇总了TypeScript中@wordpress/data.select函数的典型用法代码示例。如果您正苦于以下问题:TypeScript select函数的具体用法?TypeScript select怎么用?TypeScript select使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了select函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: setFootnotes
function* setFootnotes() {
const items = select('abt/data').getFootnotes();
const blocksList = select<Block[]>('core/block-editor').getBlocks();
const footnoteBlockIndex = blocksList.findIndex(
({ name }) => name === 'abt/footnotes',
);
const bibliographyBlockIndex = blocksList.findIndex(
({ name }) => name === 'abt/bibliography',
);
if (items.length > 0 && footnoteBlockIndex >= 0) {
yield dispatch('core/block-editor').updateBlockAttributes(
blocksList[footnoteBlockIndex].clientId,
{ items },
);
} else if (items.length > 0 && footnoteBlockIndex === -1) {
yield dispatch('core/block-editor').insertBlock(
createBlock('abt/footnotes', {
items,
}),
bibliographyBlockIndex > 0
? bibliographyBlockIndex
: blocksList.length,
undefined,
false,
);
} else if (items.length === 0 && footnoteBlockIndex >= 0) {
yield dispatch('core/block-editor').removeBlock(
blocksList[footnoteBlockIndex].clientId,
);
}
}
示例2: saveState
export function saveState() {
const id = select('core/editor').getCurrentPostId();
const post = select('abt/data').getSerializedState();
return {
type: CtrlActions.SAVE_STATE,
id,
state: post.meta._abt_state,
};
}
示例3: getEditorDOM
export function getEditorDOM(excludeInvalid: boolean = false): HTMLDivElement {
const doc = document.createElement('div');
if (excludeInvalid) {
const filteredBlocks = select<Block[]>('core/editor')
.getBlocksForSerialization()
.filter(
block =>
!INVALID_BLOCK_TYPES.includes(block.name) && block.isValid,
);
doc.innerHTML = serialize(filteredBlocks);
} else {
doc.innerHTML = select<string>('core/editor').getEditedPostContent();
}
return doc;
}
示例4: setBibliography
function* setBibliography({ items, meta }: Processor.Bibliography) {
const blocksList = select<Block[]>('core/block-editor').getBlocks();
const bibliographyBlock = blocksList.find(
block => block.name === 'abt/bibliography',
);
if (items.length > 0 && bibliographyBlock) {
yield dispatch('core/block-editor').updateBlockAttributes(
bibliographyBlock.clientId,
{ ...meta, items },
);
} else if (items.length > 0 && !bibliographyBlock) {
yield dispatch('core/block-editor').insertBlock(
createBlock('abt/bibliography', {
...meta,
items,
}),
blocksList.length,
undefined,
false,
);
} else if (items.length === 0 && bibliographyBlock) {
yield dispatch('core/block-editor').removeBlock(
bibliographyBlock.clientId,
);
}
}
示例5: fetchStyle
export function fetchStyle() {
const { value, kind } = select('abt/data').getStyle();
if (kind === StyleKind.CUSTOM) {
return value;
}
return {
type: CtrlActions.FETCH_STYLE,
id: value,
};
}
示例6: parseCitations
export function* parseCitations() {
const styleXml: string = yield fetchStyle();
yield fetchLocale(styleXml);
const processor = new Processor(styleXml);
const citations = processor.parseCitations(
select('abt/data').getCitationsByIndex(),
);
yield setBibliography(processor.bibliography);
yield updateEditorCitations(citations);
}
示例7: updateReference
export function* updateReference(data: CSL.Data) {
const itemIsCited =
select('abt/data')
.getCitedItems()
.findIndex(item => item.id === data.id) >= 0;
yield {
type: Actions.UPDATE_REFERENCE,
data,
};
if (itemIsCited) {
yield parseCitations();
}
yield save();
}