Skip to content

Commit 255df9c

Browse files
aprouja1Alex ProujanskyGuillaume Chau
authored andcommitted
feat: Add Milliseconds Display Preference and Remove Duplicate Filter… (vuejs#782)
* Add Milliseconds Option * Persist timeFormat changes * refator: use a switch Co-authored-by: Alex Proujansky <aproujansky@horizonmedia.com> Co-authored-by: Guillaume Chau <alphadelta.fg@gmail.com>
1 parent 64c9ba6 commit 255df9c

9 files changed

Lines changed: 22 additions & 23 deletions

File tree

src/devtools/filters.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
export function formatTime (timestamp) {
2-
return (new Date(timestamp)).toString().match(/\d\d:\d\d:\d\d/)[0]
1+
export function formatTime (timestamp, format) {
2+
const date = new Date(timestamp)
3+
return `${date.toString().match(/\d\d:\d\d:\d\d/)[0]}${format === 'ms' ? '.' + date.getMilliseconds() : ''}`
34
}

src/devtools/index.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import SharedData, { init as initSharedData, destroy as destroySharedData } from
1010
import { init as initStorage } from 'src/storage'
1111
import VuexResolve from './views/vuex/resolve'
1212

13+
// register filters
1314
for (const key in filters) {
1415
Vue.filter(key, filters[key])
1516
}
@@ -191,11 +192,6 @@ function initApp (shell) {
191192
store.commit('routes/CHANGED', parse(payload))
192193
})
193194

194-
// register filters
195-
Vue.filter('formatTime', function (timestamp) {
196-
return (new Date(timestamp)).toString().match(/\d\d:\d\d:\d\d/)[0]
197-
})
198-
199195
bridge.on('events:reset', () => {
200196
store.commit('events/RESET')
201197
})

src/devtools/views/events/EventsHistory.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
<span class="component-name">{{ displayComponentName(event.instanceName) }}</span>
6969
<span>&gt;</span>
7070
</span>
71-
<span class="time">{{ event.timestamp | formatTime }}</span>
71+
<span class="time">{{ event.timestamp | formatTime($shared.timeFormat) }}</span>
7272
</div>
7373
</template>
7474
</RecycleScroller>

src/devtools/views/perf/FramerateGraph.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@
6969
import { mapState, mapGetters } from 'vuex'
7070
import * as d3 from 'd3'
7171
import { FPS_MARKERS_PRECISION } from './module'
72-
import { formatTime } from 'filters'
73-
7472
import SplitPane from 'components/SplitPane.vue'
7573
import FramerateMarkerInspector from './FramerateMarkerInspector.vue'
7674
@@ -167,7 +165,7 @@ export default {
167165
getBarTootip (metric) {
168166
return `
169167
<div>${metric.value} frames per second</div>
170-
<div style="color:#999;">${formatTime(metric.time)}</div>
168+
<div style="color:#999;">${this.$options.filters.formatTime(metric.time, this.$shared.timeFormat)}</div>
171169
`
172170
},
173171

src/devtools/views/perf/FramerateMarkerInspector.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
{{ entry.label }}
3636
</div>
3737
<div class="time">
38-
{{ entry.timestamp | formatTime }}
38+
{{ entry.timestamp | formatTime($shared.timeFormat) }}
3939
</div>
4040
</div>
4141
</div>

src/devtools/views/router/RouterHistory.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
@click="inspect(routeChanges.indexOf(route))"
5858
>
5959
<span class="route-name">{{ route.to.path }}</span>
60-
<span class="time">{{ route.timestamp | formatTime }}</span>
60+
<span class="time">{{ route.timestamp | formatTime($shared.timeFormat) }}</span>
6161
<span
6262
v-if="route.to.redirectedFrom"
6363
class="label redirect"

src/devtools/views/settings/GlobalPreferences.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,15 @@
7979
</template>
8080
</VueFormField>
8181

82+
<VueFormField title="Time Format">
83+
<VueSwitch
84+
:value="$shared.timeFormat === 'ms'"
85+
@update="value => $shared.timeFormat = value ? 'ms' : 'default'"
86+
>
87+
Display milliseconds
88+
</VueSwitch>
89+
</VueFormField>
90+
8291
<VueFormField title="Detected Vue message">
8392
<VueSwitch v-model="$shared.logDetected">
8493
Display in browser console

src/devtools/views/vuex/VuexHistory.vue

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
</a>
8181
</span>
8282
<span class="time">
83-
{{ lastCommit | formatTime }}
83+
{{ lastCommit | formatTime($shared.timeFormat) }}
8484
</span>
8585
<span
8686
v-if="activeIndex === -1"
@@ -144,7 +144,7 @@
144144
v-tooltip="entry.timestamp"
145145
class="time"
146146
>
147-
{{ entry.timestamp | formatTime }}
147+
{{ entry.timestamp | formatTime($shared.timeFormat) }}
148148
</span>
149149
<span
150150
v-if="isActive(index, entry)"
@@ -180,13 +180,6 @@ export default {
180180
ActionHeader,
181181
ScrollPane
182182
},
183-
184-
filters: {
185-
formatTime (timestamp) {
186-
return (new Date(timestamp)).toString().match(/\d\d:\d\d:\d\d/)[0]
187-
}
188-
},
189-
190183
mixins: [
191184
Keyboard({
192185
onKeyDown ({ key, modifiers }) {

src/shared-data.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const internalSharedData = {
66
componentNameStyle: 'class',
77
theme: 'auto',
88
displayDensity: 'low',
9+
timeFormat: 'default',
910
recordVuex: true,
1011
cacheVuexSnapshotsEvery: 50,
1112
cacheVuexSnapshotsLimit: 10,
@@ -25,7 +26,8 @@ const persisted = [
2526
'editableProps',
2627
'logDetected',
2728
'vuexNewBackend',
28-
'vuexAutoload'
29+
'vuexAutoload',
30+
'timeFormat'
2931
]
3032

3133
// ---- INTERNALS ---- //

0 commit comments

Comments
 (0)