| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <template>
- <Stack
- :frames="report.stacktrace"
- :selected-frame-number="selectedFrameNumber"
- @frameclick="selectedFrameNumber = $event"
- />
- </template>
- <script>
- import Stack from '../Stack/Stack.vue';
- import findKey from 'lodash/findKey';
- export default {
- inject: ['report'],
- props: {
- file: { required: false },
- lineNumber: { required: false },
- },
- data() {
- return {
- selectedFrameNumber: this.report.stacktrace.length,
- };
- },
- components: {
- Stack,
- },
- provide() {
- return {
- setSelectedFrameNumber: frameNumber => (this.selectedFrameNumber = frameNumber),
- };
- },
- created() {
- this.selectFrame();
- },
- computed: {
- selectedFrame() {
- return this.report.stacktrace[this.report.stacktrace.length - this.selectedFrameNumber];
- },
- },
- methods: {
- selectFrame() {
- if (this.file) {
- const frameKey = findKey(this.report.stacktrace, f => f.file === this.file);
- this.selectedFrameNumber =
- this.report.stacktrace.length - frameKey || this.selectedFrameNumber;
- }
- },
- },
- };
- </script>
|