Odd behaviour / rendering & Unable to set date from msg.payload

I have the following code in a Dashboard 2.0 template node...

<template>
  <v-container>
    <v-row justify="space-around">
      <v-date-picker v-model="value"
        show-adjacent-months
        reactive = "true"
        hide-header="true"
        @update:model-value="send({payload: value})">
      </v-date-picker>
    </v-row>
  </v-container>
      <div>
        <h2>Latest <code>msg</code> received:</h2>
        <pre>{{ msg.payload }}</pre>
        <pre>{{value}}</pre>
    </div>
</template>

<script>
  export default {
    data () {
      return {
    // value: "2025-03-01T00:00:00.000Z"
    // value: 1741824000
    // value: new Date().toISOString()
    // value: new Date().toISOString().substring(0, 10)
      }
    }
  }
</script>

The rendering seems off compared to the examples and, the aspect ratio and spacing, specifically, and I cant work out why, or how to fix it.

In addition... and perhaps more importantly.
I am trying to update the current selected date by passing in a value/string with msg.payload, and despite so many different attempts with promising looking code snippets from other examples I cant do it.

I am aware of the 'this.' construct and context, and I even expect I should be using it but everything I have tried to add within the script tags just breaks the basic functionality of the control or entirely prevents it from rendering.

Uncommenting any of the lines in the function just stops the control from rendering at all.

The value variable and update event that sends it out both work just fine.

Interestingly, sending a value in, a date string or epoch time value, sets the date in the header and propagates out. This happens even if the script block is entirely omitted.
However it also removes the date table which cant be recovered without refreshing the page.
Even more odd, once a value has set, either by injecting or just selecting a date from the picker, refreshing the page or navigating away and back again loads that date but any attempt to move between months, without first selecting a date, hides the date table, as above.

Restarting Node-Red fixes this until a date is again selected.
Sending in, or applying with an event, a value that results in the 'Enter Date' date prompt doesn't fix the hidden date table issue!

What I need to do is set 'value' to 'msg.payload', when a message arrives.

I expect I will have exactly the same issues with the time picker so generalized answers would be cool.
All code based on examples and what of the documentation seems relevant in this, Node-Red template node, use case.

Pulling my hair out, any help / suggestions would be much appreciated.

Thanks
Al

Duplicate question: vuetify.js - vuetify in Node-Red dashboard 2.0 Send payload to component in template node. (date to v-date-picker) - Stack Overflow

@Dyslexicbloke I edited the category. Your issue is not specific to FlowFuse. I also tagged it dashboard-2 so the right people see/respond.

regarding the layout issue...

Imo, the layout issue you are seeing should not occur and may be down to the default CSS is dashboard however I am not a CSS expert. There are far more capable dashboard-2 users who can better comment here.

To aid whoever picks this up, I would recommend you recreate the same view in a vuetify playground so the differences can be highlighted.

Sorry about the dupe... Asked on several forums, had forgotten I started here.

Once I realized FlowFuse had a section here, posting here seemed like a good plan.

I take your point RE Default CSS and no, in the playground, where 99% of the code was copied from, the rendering issue doesn't occur.

The bigger problem is the failure to render/work/be accessible if any navigation, changing the month for example, is attempted without first setting a date, in whatever month and year is currently being displayed.
Considering that sending in a value, from the message object, has the same effect, it suggests some sort of link between the two things.

Essentially the control seems to be caching its value, under the hood, and if it loads with any value, will fail to display properly if any, view, selection is changed.
Setting a new value, by clicking on a displayed date, stops it from breaking and allows for month selection again.

I even sent it null and empty objects strings... An empty string causes it to display Enter Date, and I was hoping would have cleared the cached value that 'seems' to beb causing the issue, but all that did was stop it showing the date grid at all.

The only way I found to clear the thing, once it has a value, is a Node-Red restart

I am sure I am not using the control properly and I cant find an example of how to set a control, any vuetify control, value from a Node-Red msg...
On top of that I am not a web developer, don't understand how vuetify would be used deployed outside Node-Red and have even less of a clue when it comes to what looks like a special use case specifically designed to allow Node-Red to use vuetify components.

I am clueless basically... Hence the questions.

BTW. Should I not be asking questions on multiple forums, and if not, why not?
Just looking for a bigger potential pool of potential help.
Happy to comply if there are rules or even just accepted practices but the same question on unrelated sites isn't something I have ever considered an inappropriate approach to getting help.
Happy to learn though...

As far as I'm concerned, the level/quality/quantity of help folks get on this forum far exceeds other forums :oncoming_fist:

If you do post on duplicate forums I personally consider it good netiquette to link to it (then others can find the solution no matter where it is provided) but it's up to you. I only mentioned it here for cross-linking & SEO. And because one of my colleagues pointed out the SO post on our slack.

Note: Duplicate within the same forum is usually considered bad form though (and will normally get closed on this forum & on SO).

As for your main issue, it's late here. I may get time to look tomorrow or over the weekend (or someone else might pop in and help out)