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;
}