From 817093066127e6796d75cbe9c9261bb26543dec2 Mon Sep 17 00:00:00 2001 From: Lars Reimann Date: Fri, 24 Jun 2022 21:33:38 +0200 Subject: [PATCH 1/2] feat(gui): preview message of `@Todo` annotation --- .../gui/src/common/util/stringOperations.test.ts | 11 +++++++++++ api-editor/gui/src/common/util/stringOperations.ts | 3 +++ .../gui/src/features/annotations/AnnotationView.tsx | 2 ++ 3 files changed, 16 insertions(+) create mode 100644 api-editor/gui/src/common/util/stringOperations.test.ts create mode 100644 api-editor/gui/src/common/util/stringOperations.ts diff --git a/api-editor/gui/src/common/util/stringOperations.test.ts b/api-editor/gui/src/common/util/stringOperations.test.ts new file mode 100644 index 000000000..304fd7819 --- /dev/null +++ b/api-editor/gui/src/common/util/stringOperations.test.ts @@ -0,0 +1,11 @@ +import { truncate } from './stringOperations'; + +describe('truncate', () => { + test('should return strings with at most max length unchanged', () => { + expect(truncate("Lorem ipsum", 11)).toBe("Lorem ipsum"); + }); + + test('should truncate strings longer than max length and append ...', () => { + expect(truncate("Lorem ipsum", 10)).toBe("Lorem ips\u2026"); + }); +}); diff --git a/api-editor/gui/src/common/util/stringOperations.ts b/api-editor/gui/src/common/util/stringOperations.ts new file mode 100644 index 000000000..8f5422336 --- /dev/null +++ b/api-editor/gui/src/common/util/stringOperations.ts @@ -0,0 +1,3 @@ +export const truncate = function (text: string, maxLength: number): string { + return text.length > maxLength ? text.substring(0, maxLength - 1) + '\u2026' : text; +}; diff --git a/api-editor/gui/src/features/annotations/AnnotationView.tsx b/api-editor/gui/src/features/annotations/AnnotationView.tsx index 4fcf083ee..72ddecf23 100644 --- a/api-editor/gui/src/features/annotations/AnnotationView.tsx +++ b/api-editor/gui/src/features/annotations/AnnotationView.tsx @@ -64,6 +64,7 @@ import { showRenameAnnotationForm, showTodoAnnotationForm, } from '../ui/uiSlice'; +import {truncate} from "../../common/util/stringOperations"; interface AnnotationViewProps { target: string; @@ -252,6 +253,7 @@ export const AnnotationView: React.FC = function ({ target {todoAnnotation && ( dispatch(showTodoAnnotationForm(target))} onDelete={() => dispatch(removeTodo(target))} From 55b1a83980843cf553221964e56567a90932d3df Mon Sep 17 00:00:00 2001 From: lars-reimann Date: Fri, 24 Jun 2022 19:39:20 +0000 Subject: [PATCH 2/2] style: apply automatic fixes of linters --- api-editor/gui/src/common/util/stringOperations.test.ts | 4 ++-- api-editor/gui/src/features/annotations/AnnotationView.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api-editor/gui/src/common/util/stringOperations.test.ts b/api-editor/gui/src/common/util/stringOperations.test.ts index 304fd7819..3b8529358 100644 --- a/api-editor/gui/src/common/util/stringOperations.test.ts +++ b/api-editor/gui/src/common/util/stringOperations.test.ts @@ -2,10 +2,10 @@ import { truncate } from './stringOperations'; describe('truncate', () => { test('should return strings with at most max length unchanged', () => { - expect(truncate("Lorem ipsum", 11)).toBe("Lorem ipsum"); + expect(truncate('Lorem ipsum', 11)).toBe('Lorem ipsum'); }); test('should truncate strings longer than max length and append ...', () => { - expect(truncate("Lorem ipsum", 10)).toBe("Lorem ips\u2026"); + expect(truncate('Lorem ipsum', 10)).toBe('Lorem ips\u2026'); }); }); diff --git a/api-editor/gui/src/features/annotations/AnnotationView.tsx b/api-editor/gui/src/features/annotations/AnnotationView.tsx index 72ddecf23..a9fcf4814 100644 --- a/api-editor/gui/src/features/annotations/AnnotationView.tsx +++ b/api-editor/gui/src/features/annotations/AnnotationView.tsx @@ -64,7 +64,7 @@ import { showRenameAnnotationForm, showTodoAnnotationForm, } from '../ui/uiSlice'; -import {truncate} from "../../common/util/stringOperations"; +import { truncate } from '../../common/util/stringOperations'; interface AnnotationViewProps { target: string;