operaDownloadButton.ts (1272B) - raw


      1 import { assetCatalog, jsx, style } from "../composer"
      2 import { defineModule } from "../types"
      3 import { downloadLastOperaMedia } from "../imports"
      4 import { interceptComponent } from "../utils"
      5 
      6 
      7 export default defineModule({
      8     name: "Opera Download Button",
      9     enabled: config => config.operaDownloadButton,
     10     init() {
     11         interceptComponent(
     12             'context_chrome_header/src/ChromeHeaderRenderer',
     13             'ChromeHeaderRenderer',
     14             {
     15                 onRenderBaseHeader: (_component: any, _args: any[], render: () => void) => {
     16                     render()
     17                     jsx.beginRender(jsx.makeNodePrototype("image"))
     18                     jsx.setAttributeStyle("style", new style.Style({
     19                         height: 32,
     20                         marginTop: 4,
     21                         marginLeft: 8,
     22                         marginRight: 12,
     23                     }))
     24                     jsx.setAttribute("src", assetCatalog.loadCatalog("share_sheet/res").download)
     25                     jsx.setAttributeFunction("onTap", () => downloadLastOperaMedia(false))
     26                     jsx.setAttributeFunction("onLongPress", () => downloadLastOperaMedia(true))
     27                     jsx.endRender()
     28                 }
     29             }
     30         )
     31     }
     32 })