From 9338c5c810154a2b085c41e5fdf4a603c4250f1a Mon Sep 17 00:00:00 2001 From: pedr Date: Sat, 14 Dec 2024 08:42:36 -0300 Subject: [PATCH] Desktop: Fixes #11179: Fixed tags with same special unicode characters not matching (#11513) --- packages/lib/models/Tag.test.ts | 11 +++++++++++ packages/lib/models/Tag.ts | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/lib/models/Tag.test.ts b/packages/lib/models/Tag.test.ts index b9df787e4e..ee5387f3d6 100644 --- a/packages/lib/models/Tag.test.ts +++ b/packages/lib/models/Tag.test.ts @@ -212,4 +212,15 @@ describe('models/Tag', () => { expect(commonTagIds.includes(tagc.id)).toBe(true); }); + it('should allow finding tags even with special Unicode characters', async () => { + const note1 = await Note.save({}); + // cSpell:disable + await Tag.setNoteTagsByTitles(note1.id, ['Ökonomie']); + + const tag1 = await Tag.loadByTitle('Ökonomie'); + const tag2 = await Tag.loadByTitle('ökonomie'); + // cSpell:enable + + expect(tag1).toStrictEqual(tag2); + }); }); diff --git a/packages/lib/models/Tag.ts b/packages/lib/models/Tag.ts index 220934e2df..4136115c0e 100644 --- a/packages/lib/models/Tag.ts +++ b/packages/lib/models/Tag.ts @@ -172,7 +172,9 @@ export default class Tag extends BaseItem { } public static async loadByTitle(title: string): Promise { - return this.loadByField('title', title, { caseInsensitive: true }); + // Case insensitive doesn't work with especial Unicode characters like Ö + const lowercaseTitle = title.toLowerCase(); + return this.loadByField('title', lowercaseTitle, { caseInsensitive: true }); } public static async addNoteTagByTitle(noteId: string, tagTitle: string) {