Skip to content

Commit 7678f67

Browse files
committed
Item link update
1 parent 0437023 commit 7678f67

File tree

4 files changed

+49
-32
lines changed

4 files changed

+49
-32
lines changed

MessageBarkerFrame.lua

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -225,31 +225,22 @@ function MessageBarkerFrameMixin:PromptDeleteSelectedMessage()
225225
StaticPopup_Show("CONFIRM_DELETE_MESSAGE", selectedMessage.name, nil, { messageRow = messageRow, messageToDelete = selectedMessage })
226226
end
227227

228-
-- Hook item clicks
229-
local originalHandleModifiedItemClick = nil
230-
if not originalHandleModifiedItemClick and HandleModifiedItemClick then
231-
originalHandleModifiedItemClick = HandleModifiedItemClick
232-
HandleModifiedItemClick = function(link)
228+
-- Hook ChatEdit_InsertLink
229+
local originalChatEdit_InsertLink = nil
230+
if not originalChatEdit_InsertLink and ChatEdit_InsertLink then
231+
originalChatEdit_InsertLink = ChatEdit_InsertLink
232+
ChatEdit_InsertLink = function(link)
233233
local handled = false
234-
if originalHandleModifiedItemClick then
235-
handled = originalHandleModifiedItemClick(link)
236-
if not handled and type(link) == "string" then
237-
handled = MessageBarkerFrame:HandleItemLinked(Item:CreateFromItemLink(link))
238-
end
234+
-- Try handling in the MessageEditor
235+
if link and MessageBarkerFrame:IsShown() and MessageBarkerFrame.MessageEditor then
236+
handled = MessageBarkerFrame.MessageEditor:HandleInsertLink(link)
239237
end
240-
return handled
241-
end
242-
end
243-
244-
function MessageBarkerFrameMixin:HandleItemLinked(item)
245-
local handled = false
246-
if item and self:IsShown() and IsModifiedClick("CHATLINK") then
247-
handled = self.MessageEditor:HandleItemLinked(item)
238+
-- Fall back to original handler
248239
if not handled then
249-
local newMessage = MessageBarker:CreateMessage(MessageBarker_MessageTypes.Sale, item:GetItemID(), item:GetItemLink())
250-
MessageBarker:AddNewMessage(newMessage)
251-
handled = true
240+
if originalChatEdit_InsertLink then
241+
handled = originalChatEdit_InsertLink(link)
242+
end
252243
end
244+
return handled
253245
end
254-
return handled
255246
end

MessageEditor.lua

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,30 @@ function MessageEditorMixin:OnNameChanged()
130130
self:TriggerEvent(MessageEditorEvent.MessageChanged, self.currentMessage)
131131
end
132132

133-
function MessageEditorMixin:HandleItemLinked(item)
133+
function MessageEditorMixin:HandleInsertLink(link)
134134
local handled = false
135-
if self.messageContentFrame and self.messageContentFrame.HandleItemLinked then
136-
handled = self.messageContentFrame:HandleItemLinked(item)
135+
if self.messageContentFrame then
136+
if self.messageContentFrame.HandleInsertLink then
137+
handled = self.messageContentFrame:HandleInsertLink(link)
138+
end
139+
else
140+
handled = self:TryCreateNewSaleMessageFromLink(link)
141+
end
142+
return handled
143+
end
144+
145+
function MessageEditorMixin:TryCreateNewSaleMessageFromLink(link)
146+
local handled = false
147+
if link and type(link) == "string" then
148+
local item = Item:CreateFromItemLink(link)
149+
if item then
150+
local itemId = item:GetItemID()
151+
if itemId and itemId > 0 then
152+
local newMessage = MessageBarker:CreateMessage(MessageBarker_MessageTypes.Sale, itemId, item:GetItemLink())
153+
MessageBarker:AddNewMessage(newMessage)
154+
handled = true
155+
end
156+
end
137157
end
138158
return handled
139159
end

MessageTemplates/BasicMessageTemplate.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ function BasicMessageTemplateMixin:OnTextChanged()
1414
self.message.content = self.MessageScrollFrame.MessageEditBox:GetText()
1515
end
1616

17-
function BasicMessageTemplateMixin:HandleItemLinked(item)
17+
function BasicMessageTemplateMixin:HandleInsertLink(link)
1818
local handled = false
19-
if item then
20-
self.MessageScrollFrame.MessageEditBox:Insert(item:GetItemLink())
19+
if link then
20+
self.MessageScrollFrame.MessageEditBox:Insert(link)
2121
handled = true
2222
end
2323
return handled

MessageTemplates/SaleMessageTemplate.lua

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,17 @@ function SaleMessageTemplateMixin:DeleteItem(item)
2222
self.SaleScrollFrame:Update()
2323
end
2424

25-
function SaleMessageTemplateMixin:HandleItemLinked(item)
25+
function SaleMessageTemplateMixin:HandleInsertLink(link)
2626
local handled = false
27-
if item then
28-
self:AddItem(item:GetItemID(), item:GetItemLink())
29-
handled = true
27+
if link and type(link) == "string" then
28+
local item = Item:CreateFromItemLink(link)
29+
if item then
30+
local itemId = item:GetItemID()
31+
if itemId and itemId > 0 then
32+
self:AddItem(itemId, item:GetItemLink())
33+
handled = true
34+
end
35+
end
3036
end
3137
return handled
3238
end

0 commit comments

Comments
 (0)