import {PageConfigTypes} from "../../../custom-types/pageConfig-types";
import {CustomExpect} from "../../common-helpers/custom-expect";
import {browser, $, $$, expect} from '@wdio/globals'

/**
 * Check if the given element is visible inside the current viewport
 * @param  {String}   selector   Element selector
 * @param  {String}   falseCase Whether to check if the element is visible
 *                              within the current viewport or not
 */
export default async function (pageConfig: PageConfigTypes, falseCase: boolean) {
    /**
     * The state of visibility of the given element inside the viewport
     * @type {Boolean}
     */
        // const isDisplayed = await $(pageConfig.selector).isDisplayedInViewport();
    const isDisplayed = await $(pageConfig.selector).isDisplayed();

    if (falseCase) {
        CustomExpect.expectNotToEqual(isDisplayed, true, `Element "${pageConfig.pageId}.${pageConfig.elementKey}" is Displayed in viewport`)
    } else {
        CustomExpect.expectToEqual(isDisplayed, true, `Element "${pageConfig.pageId}.${pageConfig.elementKey}" is not Displayed in viewport`)
    }
};
