Skip to main content
static modifyElements(NOTEPath: string, page: number, elements: Element[]): Promise<APIResponse<number[]>>;
Parameters
ParameterTypeDescription
NOTEPathstringNOTE/DOC file path
pagenumberPage index (starts from 0)
elementsElement[]Elements to modify (must already exist)
Returns

Example

import { PluginFileAPI, ElementType, type Element } from 'sn-plugin-lib';

/**
 * Example: fetch page elements and submit a modification.
 */
export async function exampleModifyElements() {
 const NOTEPath = '/storage/emulated/0/Note/demo.note';
 const page = 0;

 const listRes = await PluginFileAPI.getElements(page, NOTEPath);
 if (!listRes.success) {
 throw new Error(listRes.error?.message ?? 'getElements call failed');
 }

 const elements = (listRes.result ?? []) as Element[];
 const target = elements[0];
 switch (target?.type) {
 case ElementType.TYPE_STROKE: {
 target.thickness = (target.thickness ?? 200) + 100;
 if (target.stroke) {
 target.stroke.penColor = 0x9D;
 }
 break;
 }
 case ElementType.TYPE_TEXT:
 case ElementType.TYPE_TEXT_DIGEST_QUOTE:
 case ElementType.TYPE_TEXT_DIGEST_CREATE: {
 if (target.textBox) {
 target.textBox.textContentFull = 'exampletext';
 target.textBox.textBold = 1;
 }
 break;
 }
 case ElementType.TYPE_TITLE: {
 if (target.title) {
 target.title.style = 1;
 }
 break;
 }
 default:
 break;
 }
 const res = await PluginFileAPI.modifyElements(NOTEPath, page, elements);
 if (!res.success) {
 throw new Error(res.error?.message ?? 'modifyElements call failed');
 }
 return res.result;
}