Ensure self join message is rendered
This commit is contained in:
@@ -116,6 +116,7 @@ class ChatController extends Controller
|
|||||||
// 3. 广播和初始化欢迎(仅限初次进入)
|
// 3. 广播和初始化欢迎(仅限初次进入)
|
||||||
$newbieEffect = null;
|
$newbieEffect = null;
|
||||||
$initialPresenceTheme = null;
|
$initialPresenceTheme = null;
|
||||||
|
$initialWelcomeMessage = null;
|
||||||
|
|
||||||
if (! $isAlreadyInRoom) {
|
if (! $isAlreadyInRoom) {
|
||||||
// 广播 UserJoined 事件,通知房间内的其他人
|
// 广播 UserJoined 事件,通知房间内的其他人
|
||||||
@@ -179,6 +180,9 @@ class ChatController extends Controller
|
|||||||
$initialPresenceTheme = $vipPresencePayload;
|
$initialPresenceTheme = $vipPresencePayload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 把当前这次进房生成的欢迎消息带回前端,确保用户自己也一定能看到。
|
||||||
|
$initialWelcomeMessage = $generalWelcomeMsg;
|
||||||
|
|
||||||
$this->chatState->pushMessage($id, $generalWelcomeMsg);
|
$this->chatState->pushMessage($id, $generalWelcomeMsg);
|
||||||
// 修复:之前使用了 ->toOthers() 导致自己看不到自己的进场提示
|
// 修复:之前使用了 ->toOthers() 导致自己看不到自己的进场提示
|
||||||
broadcast(new MessageSent($id, $generalWelcomeMsg));
|
broadcast(new MessageSent($id, $generalWelcomeMsg));
|
||||||
@@ -273,6 +277,7 @@ class ChatController extends Controller
|
|||||||
'weekEffect' => $this->shopService->getActiveWeekEffect($user),
|
'weekEffect' => $this->shopService->getActiveWeekEffect($user),
|
||||||
'newbieEffect' => $newbieEffect,
|
'newbieEffect' => $newbieEffect,
|
||||||
'initialPresenceTheme' => $initialPresenceTheme,
|
'initialPresenceTheme' => $initialPresenceTheme,
|
||||||
|
'initialWelcomeMessage' => $initialWelcomeMessage,
|
||||||
'historyMessages' => $historyMessages,
|
'historyMessages' => $historyMessages,
|
||||||
'pendingProposal' => $pendingProposalData,
|
'pendingProposal' => $pendingProposalData,
|
||||||
'pendingDivorce' => $pendingDivorceData,
|
'pendingDivorce' => $pendingDivorceData,
|
||||||
|
|||||||
@@ -232,6 +232,17 @@
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@endif
|
@endif
|
||||||
|
@if (!empty($initialWelcomeMessage))
|
||||||
|
<script>
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (typeof window.appendMessage === 'function') {
|
||||||
|
window.appendMessage(@json($initialWelcomeMessage));
|
||||||
|
}
|
||||||
|
}, 220);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endif
|
||||||
@if (!empty($newbieEffect) || !empty($weekEffect) || !empty($initialPresenceTheme['presence_effect']))
|
@if (!empty($newbieEffect) || !empty($weekEffect) || !empty($initialPresenceTheme['presence_effect']))
|
||||||
<script>
|
<script>
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user