mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-18 12:47:50 +01:00
mobile: fix quick notes from notifications (#3165)
- Add note to default notebook - Respect paragraph spacing Signed-off-by: Ammar Ahmed <40239442+ammarahm-ed@users.noreply.github.com>
This commit is contained in:
@@ -46,6 +46,7 @@ const App = () => {
|
|||||||
if (appLockMode && appLockMode !== "none") {
|
if (appLockMode && appLockMode !== "none") {
|
||||||
useUserStore.getState().lockApp(true);
|
useUserStore.getState().lockApp(true);
|
||||||
}
|
}
|
||||||
|
globalThis["IS_MAIN_APP_RUNNING"] = true;
|
||||||
init();
|
init();
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
SettingsService.onFirstLaunch();
|
SettingsService.onFirstLaunch();
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ export const useEditor = (
|
|||||||
|
|
||||||
const reset = useCallback(
|
const reset = useCallback(
|
||||||
async (resetState = true, resetContent = true) => {
|
async (resetState = true, resetContent = true) => {
|
||||||
currentNote.current?.id && db.fs?.cancel(currentNote.current.id);
|
currentNote.current?.id && db.fs?.cancel(currentNote.current.id, null);
|
||||||
currentNote.current = null;
|
currentNote.current = null;
|
||||||
loadedImages.current = {};
|
loadedImages.current = {};
|
||||||
currentContent.current = null;
|
currentContent.current = null;
|
||||||
|
|||||||
@@ -46,8 +46,10 @@ import { useRelationStore } from "../stores/use-relation-store";
|
|||||||
import { useReminderStore } from "../stores/use-reminder-store";
|
import { useReminderStore } from "../stores/use-reminder-store";
|
||||||
import { presentDialog } from "../components/dialog/functions";
|
import { presentDialog } from "../components/dialog/functions";
|
||||||
import NetInfo from "@react-native-community/netinfo";
|
import NetInfo from "@react-native-community/netinfo";
|
||||||
|
import { encodeNonAsciiHTML } from "entities";
|
||||||
import { convertNoteToText } from "../utils/note-to-text";
|
import { convertNoteToText } from "../utils/note-to-text";
|
||||||
|
|
||||||
|
|
||||||
export type Reminder = {
|
export type Reminder = {
|
||||||
id: string;
|
id: string;
|
||||||
type: string;
|
type: string;
|
||||||
@@ -87,6 +89,28 @@ async function getNextMonthlyReminderDate(
|
|||||||
return await getNextMonthlyReminderDate(reminder, dayjs().year() + 1);
|
return await getNextMonthlyReminderDate(reminder, dayjs().year() + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function textToHTML(src: string) {
|
||||||
|
return src
|
||||||
|
.split(/[\r\n]/)
|
||||||
|
.map((line) =>
|
||||||
|
line
|
||||||
|
? `<p data-spacing="single">${encodeLine(line)}</p>`
|
||||||
|
: `<p data-spacing="single"></p>`
|
||||||
|
)
|
||||||
|
.join("");
|
||||||
|
}
|
||||||
|
|
||||||
|
function encodeLine(line: string) {
|
||||||
|
line = encodeNonAsciiHTML(line);
|
||||||
|
line = line.replace(/(^ +)|( {2,})/g, (sub, ...args) => {
|
||||||
|
const [starting, inline] = args;
|
||||||
|
if (starting) return " ".repeat(starting.length);
|
||||||
|
if (inline) return " ".repeat(inline.length);
|
||||||
|
return sub;
|
||||||
|
});
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
async function initDatabase(notes = true) {
|
async function initDatabase(notes = true) {
|
||||||
if (!db.isInitialized) {
|
if (!db.isInitialized) {
|
||||||
await db.initCollections();
|
await db.initCollections();
|
||||||
@@ -207,16 +231,41 @@ const onEvent = async ({ type, detail }: Event) => {
|
|||||||
});
|
});
|
||||||
if (!db.isInitialized) await db.init();
|
if (!db.isInitialized) await db.init();
|
||||||
await db.notes?.init();
|
await db.notes?.init();
|
||||||
await db.notes?.add({
|
|
||||||
|
const id = await db.notes?.add({
|
||||||
content: {
|
content: {
|
||||||
type: "tiptap",
|
type: "tiptap",
|
||||||
data: `<p>${input} </p>`
|
data: textToHTML(input as string)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const defaultNotebook = db.settings?.getDefaultNotebook();
|
||||||
|
|
||||||
|
if (defaultNotebook) {
|
||||||
|
if (!defaultNotebook.topic) {
|
||||||
|
await db.relations?.add(
|
||||||
|
{ type: "notebook", id: defaultNotebook.id },
|
||||||
|
{ type: "note", id: id }
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
await db.notes?.addToNotebook(
|
||||||
|
{
|
||||||
|
topic: defaultNotebook.topic,
|
||||||
|
id: defaultNotebook?.id
|
||||||
|
},
|
||||||
|
id
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const status = await NetInfo.fetch();
|
const status = await NetInfo.fetch();
|
||||||
if (status.isInternetReachable) {
|
if (status.isInternetReachable) {
|
||||||
try {
|
try {
|
||||||
await db.sync(false, false);
|
if (!globalThis["IS_MAIN_APP_RUNNING" as never]) {
|
||||||
|
await db.sync(false, false);
|
||||||
|
} else {
|
||||||
|
console.log("main app running, skipping sync");
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e, (e as Error).stack);
|
console.log(e, (e as Error).stack);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -377,7 +377,11 @@ const ShareView = ({ quicknote = false }) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await db.sync(false, false);
|
if (!globalThis["IS_MAIN_APP_RUNNING"]) {
|
||||||
|
await db.sync(false, false);
|
||||||
|
} else {
|
||||||
|
console.log("main app running, skipping sync");
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e, e.stack);
|
console.log(e, e.stack);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user