feat: AI chat tone selector + graph node pinning
- ai-chat: sélecteur tone (Professional/Créatif/Académique/Décontracté) passé via noteContext.tone dans le body vers /api/chat - network-graph: dragended garde fx/fy → nœud épinglé après drag double-clic sur nœud pour désépingler (fx=null, fy=null) - sprint-status: 6-2 et 6-3 passés en done Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -241,6 +241,11 @@ export function NetworkGraph({
|
||||
return String(d.clusterId) === selectedClusterId ? 1 : 0.15
|
||||
})
|
||||
.on('click', (event, d) => onNoteSelect(d.id))
|
||||
.on('dblclick', (event, d) => {
|
||||
d.fx = null
|
||||
d.fy = null
|
||||
simulation.alphaTarget(0.1).restart()
|
||||
})
|
||||
.call(d3.drag<SVGGElement, D3Node>()
|
||||
.on('start', dragstarted)
|
||||
.on('drag', dragged)
|
||||
@@ -328,8 +333,8 @@ export function NetworkGraph({
|
||||
|
||||
function dragended(event: any, d: D3Node) {
|
||||
if (!event.active) simulation.alphaTarget(0)
|
||||
d.fx = null
|
||||
d.fy = null
|
||||
// Garder le nœud épinglé à sa position après drag (fx/fy non remis à null)
|
||||
// Double-clic pour désépingler → géré via dblclick ci-dessous
|
||||
}
|
||||
|
||||
return () => {
|
||||
|
||||
Reference in New Issue
Block a user