[TSK-1327] Clickable links for string presenters and rich text editor (#3088)

Signed-off-by: Sergei Ogorelkov <sergei.ogorelkov@icloud.com>
This commit is contained in:
Sergei Ogorelkov
2023-04-27 19:28:12 +07:00
committed by GitHub
parent 324ff317cb
commit 073e55b15c
10 changed files with 94 additions and 37 deletions
@@ -1,26 +1,23 @@
<!--
// Copyright © 2020, 2021 Anticrm Platform Contributors.
// Copyright © 2021 Hardcore Engineering Inc.
//
//
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License. You may
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
//
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
//
// See the License for the specific language governing permissions and
// limitations under the License.
-->
<script lang="ts">
import { getEmbeddedLabel, IntlString } from '@hcengineering/platform'
import { LabelAndProps, tooltip } from '@hcengineering/ui'
import StringEditor from './StringEditor.svelte'
import { getEmbeddedLabel } from '@hcengineering/platform'
import { LabelAndProps, LinkWrapper, tooltip } from '@hcengineering/ui'
export let value: string | string[] | undefined
export let onChange: ((value: string) => void) | undefined = undefined
export let placeholder: IntlString = getEmbeddedLabel('')
$: tooltipParams = getTooltip(value)
@@ -41,11 +38,9 @@
<span class="lines-limit-2 select-text" use:tooltip={tooltipParams}>
{#if Array.isArray(value)}
{#each value as str, i}
<span class:ml-1={i !== 0}>{str}</span>
<span class:ml-1={i !== 0}><LinkWrapper text={str} /></span>
{/each}
{:else if onChange === undefined}
{value ?? ''}
{:else}
<StringEditor {onChange} value={value ?? ''} {placeholder} />
{:else if value}
<LinkWrapper text={value} />
{/if}
</span>