<template>
    <div class="groups-home-component w-100 h-100">
        <div v-if="initialLoad" class="row border-bottom m-0 p-0">
            <sidebar />

            <div class="col-12 col-md-10">
                <self-notifications :profile="profile" />
            </div>
        </div>
        <div v-else class="row justify-content-center mt-5">
            <b-spinner />
        </div>
    </div>
</template>

<script type="text/javascript">
    import GroupStatus from '@/groups/partials/GroupStatus.vue';
    import SelfFeed from '@/groups/partials/SelfFeed.vue';
    import SelfDiscover from '@/groups/partials/SelfDiscover.vue';
    import SelfGroups from '@/groups/partials/SelfGroups.vue';
    import SelfNotifications from '@/groups/partials/SelfNotifications.vue';
    import SelfInvitations from '@/groups/partials/SelfInvitations.vue';
    import SelfRemoteSearch from '@/groups/partials/SelfRemoteSearch.vue';
    import CreateGroup from '@/groups/CreateGroup.vue';
    import SidebarComponent from '@/groups/sections/Sidebar.vue';
    import Autocomplete from '@trevoreyre/autocomplete-vue'
    import '@trevoreyre/autocomplete-vue/dist/style.css'

    export default {
        data() {
            return {
                initialLoad: false,
                config: {},
                groups: [],
                profile: {},
                tab: null,
                searchQuery: undefined,
            };
        },

        components: {
            'autocomplete-input': Autocomplete,
            'group-status': GroupStatus,
            'self-discover': SelfDiscover,
            'self-groups': SelfGroups,
            'self-feed': SelfFeed,
            'self-notifications': SelfNotifications,
            'self-invitations': SelfInvitations,
            'self-remote-search': SelfRemoteSearch,
            "create-group": CreateGroup,
            "sidebar": SidebarComponent
        },

        mounted() {
            this.fetchConfig();
        },

        methods: {
            init() {
                document.querySelectorAll("footer").forEach(e => e.parentNode.removeChild(e));
                document.querySelectorAll(".mobile-footer-spacer").forEach(e => e.parentNode.removeChild(e));
                document.querySelectorAll(".mobile-footer").forEach(e => e.parentNode.removeChild(e));
                this.initialLoad = true;
            },

            fetchConfig() {
                axios.get('/api/v0/groups/config')
                .then(res => {
                    this.config = res.data;
                    this.fetchProfile();
                });
            },

            fetchProfile() {
                axios.get('/api/pixelfed/v1/accounts/verify_credentials')
                .then(res => {
                    this.profile = res.data;
                    this.init();
                    window._sharedData.curUser = res.data;
                    window.App.util.navatar();
                })
            },
        }
    }
</script>

<style lang="scss">
    .groups-home-component {
        font-family: var(--font-family-sans-serif);
    }
</style>