Preserve QPowerPoint text hyperlinks in PPTX

This commit is contained in:
Курнат Андрей
2026-06-02 06:08:47 +03:00
parent 2f1c70852d
commit 0a675236b3
6 changed files with 152 additions and 9 deletions
+25 -1
View File
@@ -1,6 +1,6 @@
import { useRef, useState } from "react";
import type { CSSProperties } from "react";
import { Copy, Download, EyeOff, FileText, FileUp, Image as ImageIcon, List, ListOrdered, ListX, Palette, Plus, Save, Trash2 } from "lucide-react";
import { Copy, Download, EyeOff, FileText, FileUp, Image as ImageIcon, Link, List, ListOrdered, ListX, Palette, Plus, Save, Trash2 } from "lucide-react";
import type { Slide, SlideDeck, SlideImage, SlideListStyle, SlideTransition } from "../../types";
import { downloadBlobFile, downloadTextFile } from "../../utils/download";
import { exportPptxBlob, importPptxFile } from "../../io/powerPointOffice";
@@ -497,6 +497,18 @@ export function QPowerPoint({ deck, onChange }: QPowerPointProps) {
/>
))}
</div>
<label className="office-field office-field-wide">
<span>
<Link size={14} />
Ссылка заголовка
</span>
<input
value={activeSlide.titleHyperlink ?? ""}
aria-label="Ссылка заголовка слайда"
placeholder="https://example.com"
onChange={(event) => updateSlide({ ...activeSlide, titleHyperlink: event.target.value || undefined })}
/>
</label>
<label className="office-field">
<span>Подзаголовок</span>
<select
@@ -541,6 +553,18 @@ export function QPowerPoint({ deck, onChange }: QPowerPointProps) {
/>
))}
</div>
<label className="office-field office-field-wide">
<span>
<Link size={14} />
Ссылка подзаголовка
</span>
<input
value={activeSlide.subtitleHyperlink ?? ""}
aria-label="Ссылка подзаголовка слайда"
placeholder="https://example.com"
onChange={(event) => updateSlide({ ...activeSlide, subtitleHyperlink: event.target.value || undefined })}
/>
</label>
<div className="segmented-tools slide-list-tools" aria-label="Список подзаголовка">
<button
type="button"