local SLE, T, E, L, V, P, G = unpack(ElvUI_SLE) local Pr = SLE.Professions local S = E.Skins local _G = _G local C_TradeSkillUI_CraftRecipe = C_TradeSkillUI.CraftRecipe local C_TradeSkillUI_IsTradeSkillGuild = C_TradeSkillUI.IsTradeSkillGuild local C_TradeSkillUI_IsTradeSkillLinked = C_TradeSkillUI.IsTradeSkillLinked local UseItemByName = UseItemByName local button local function ShouldShowButton(recipeInfo) if (recipeInfo and recipeInfo.isEnchantingRecipe) and (not C_TradeSkillUI_IsTradeSkillGuild() or not C_TradeSkillUI_IsTradeSkillLinked()) then return true end return false end local function UpdateButtonText(recipeInfo) local scrollCount = GetItemCount(38682) button:SetText(format('%s (%d)', L["Scroll"], scrollCount)) if recipeInfo and recipeInfo.craftable and recipeInfo.learned and scrollCount > 0 then button:Enable() else button:Disable() end end function Pr:UpdateButtonInfo(recipeInfo) UpdateButtonText(recipeInfo) button:SetShown(ShouldShowButton(recipeInfo)) end function Pr:EnchantButton() if not E.private.sle.professions.enchant.enchScroll then return end button = CreateFrame('Button', 'SL_EnchantScrollButton', _G.ProfessionsFrame.CraftingPage.CreateAllButton, 'MagicButtonTemplate, BackdropTemplate') button:Hide() if E.private.skins.blizzard.tradeskill and E.private.skins.blizzard.enable then S:HandleButton(button) button:SetTemplate('Default', true) button:ClearAllPoints() button:SetPoint('TOPRIGHT', _G.ProfessionsFrame.CraftingPage.CreateAllButton, 'TOPLEFT', -1, 0) else button:SetPoint('TOPRIGHT', _G.ProfessionsFrame.CraftingPage.CreateAllButton, 'TOPLEFT') end button:SetMotionScriptsWhileDisabled(true) button:SetScript('OnClick', function() C_TradeSkillUI_CraftRecipe(_G.ProfessionsFrame.CraftingPage.SchematicForm:GetRecipeInfo().recipeID) UseItemByName(38682) end) hooksecurefunc(_G.ProfessionsFrame.CraftingPage, 'Refresh', function(CraftingPage) if not CraftingPage.SchematicForm or not CraftingPage.SchematicForm.currentRecipeInfo then return end Pr:UpdateButtonInfo(CraftingPage.SchematicForm.currentRecipeInfo) end) Pr:RegisterEvent('ITEM_COUNT_CHANGED', function(_, itemID) if not itemID or itemID ~= 38682 then return end UpdateButtonText(_G.ProfessionsFrame.CraftingPage.SchematicForm.currentRecipeInfo) end) EventRegistry:RegisterCallback('ProfessionsRecipeListMixin.Event.OnRecipeSelected', Pr.UpdateButtonInfo) end