var channelSearchQuery = "" let parameters = { renoteId: "", channelId: "", } @setFeaturedChannels(){ let channels = Mk:api("channels/featured", {}).map(@(channel){{text: channel.name,value: channel.id}}) setChannels(channels) } @setSearchedChannels(){ let channels = Mk:api("channels/search", {query: channelSearchQuery, limit: 10}).map(@(channel){{text: channel.name,value: channel.id}}) setChannels(channels) } @setChannels(channels){ channels.unshift({text: "None", value: ""}) parameterUis.channelId.update({default: parameters.channelId}) parameters.channelId = "" parameterUis.channelId.update({default: parameters.channelId, items: channels}) } @resetParameters(){ parameterUis.renoteId.update({default: parameters.renoteId}) parameters.renoteId = "" parameterUis.renoteId.update({default: parameters.renoteId}) } @noteCreate(){ let params = {} if (parameters.renoteId!="") params.renoteId=parameters.renoteId if (parameters.channelId!="") params.channelId=parameters.channelId let response = Mk:api("notes/create", params) if (Core:type(response)=="obj") { resetParameters() } } let parameterUis = { renoteId: Ui:C:textInput({label: "renoteId", default: parameters.renoteId, onInput: @(v){parameters.renoteId=v}}), channelId: Ui:C:select({label: "channels", items: [], onChange: @(v){parameters.channelId=v}}), } let noteButtonUi = Ui:C:container({ children: [ Ui:C:button({primary: true, text: "Note", onClick: noteCreate}) ] }) let renoteDataUi = Ui:C:container({ children: [ parameterUis.renoteId, ] }) let channelDataUi = Ui:C:container({ children: [ parameterUis.channelId, ] }) let channelSearchUi = Ui:C:folder({ title: "search channels", opened: false, children: [ Ui:C:textInput({label: "query", default: channelSearchQuery, onInput: @(v){channelSearchQuery=v}}), Ui:C:button({text: "search", onClick: setSearchedChannels}) ] }) @renderPostFormUi(){ Ui:render([ noteButtonUi, renoteDataUi, channelDataUi, channelSearchUi, ]) } setFeaturedChannels() renderPostFormUi()