MCPcopy Index your code
hub / github.com/easydiffusion/easydiffusion / createTab

Function createTab

ui/media/js/utils.js:769–871  ·  view source on GitHub ↗

* @param {CreateTabRequest} request

(request)

Source from the content-addressed store, hash-verified

767 * @param {CreateTabRequest} request
768 */
769function createTab(request) {
770 if (!request?.id) {
771 console.error("createTab() error - id is required", Error().stack)
772 return
773 }
774
775 if (!request.label) {
776 console.error("createTab() error - label is required", Error().stack)
777 return
778 }
779
780 if (!request.icon) {
781 console.error("createTab() error - icon is required", Error().stack)
782 return
783 }
784
785 if (!request.content && !request.onOpen) {
786 console.error("createTab() error - content or onOpen required", Error().stack)
787 return
788 }
789
790 const tabsContainer = document.querySelector(".tab-container")
791 if (!tabsContainer) {
792 return
793 }
794
795 const tabsContentWrapper = document.querySelector("#tab-content-wrapper")
796 if (!tabsContentWrapper) {
797 return
798 }
799
800 // console.debug('creating tab: ', request)
801
802 if (request.css) {
803 document
804 .querySelector("body")
805 .insertAdjacentElement(
806 "beforeend",
807 createElement("style", { id: `tab-${request.id}-css` }, undefined, request.css)
808 )
809 }
810
811 const label = typeof request.label === "function" ? request.label() : request.label
812 const labelElement = label instanceof Node ? label : createElement("span", undefined, undefined, label)
813
814 const tab = createElement(
815 "span",
816 { id: `tab-${request.id}`, "data-times-opened": 0 },
817 ["tab"],
818 createElement("span", undefined, undefined, [
819 createElement("i", { style: "margin-right: 0.25em" }, [
820 "fa-solid",
821 `${request.icon.startsWith("fa-") ? "" : "fa-"}${request.icon}`,
822 "icon",
823 ]),
824 labelElement,
825 ])
826 )

Callers 2

Calls 4

createElementFunction · 0.85
linkTabContentsFunction · 0.85
replaceContentFunction · 0.85
addEventListenerMethod · 0.45

Tested by

no test coverage detected