framework7-vue
Version:
Build full featured iOS & Android apps using Framework7 & Vue
58 lines • 1.89 kB
JavaScript
import { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, createElementBlock as _createElementBlock } from "vue";
function render(_ctx, _cache) {
const _component_f7_link = _resolveComponent("f7-link");
return _openBlock(), _createElementBlock("div", {
class: _normalizeClass(_ctx.classes)
}, [_ctx.backLink ? (_openBlock(), _createBlock(_component_f7_link, {
key: 0,
href: _ctx.backLinkUrl || '#',
back: "",
icon: "icon-back",
force: _ctx.backLinkForce || undefined,
class: _normalizeClass(!_ctx.text ? 'icon-only' : undefined),
text: _ctx.text,
onClick: _ctx.onBackClick
}, null, 8, ["href", "force", "class", "text", "onClick"])) : _createCommentVNode("", true), _renderSlot(_ctx.$slots, "default")], 2);
}
import { computed } from 'vue';
import { classNames } from '../shared/utils.js';
import { colorClasses, colorProps } from '../shared/mixins.js';
import f7Link from './link.js';
export default {
name: 'f7-nav-left',
render,
components: {
f7Link
},
props: {
backLink: [Boolean, String],
backLinkUrl: String,
backLinkForce: Boolean,
backLinkShowText: {
type: Boolean,
default: undefined
},
...colorProps
},
emits: ['back:click', 'click:back'],
setup(props, {
emit
}) {
const onBackClick = event => {
emit('back:click', event);
emit('click:back', event);
};
const text = computed(() => {
if (props.backLink) {
return props.backLink !== true && props.backLinkShowText ? props.backLink : undefined;
}
return undefined;
});
const classes = computed(() => classNames('left', {}, colorClasses(props)));
return {
classes,
onBackClick,
text
};
}
};