using UnityEditor;
using UnityEngine;
using UnityEngine.UI;

namespace AlicizaX.UI.Extension.Editor
{
    internal static class MenuExtension
    {
        [MenuItem("GameObject/UX/UXTextMeshPro", false, -1)]
        private static void CreateUxTextMeshProUx()
        {
            GameObject selectionObject = Selection.activeGameObject;
            var gameObject = new GameObject("UXTextMeshPro", typeof(UXTextMeshPro));
            gameObject.transform.SetParent(selectionObject.transform);
            var rectTransform = gameObject.GetComponent<RectTransform>();
            var uxTextMeshPro = gameObject.GetComponent<UXTextMeshPro>();
            uxTextMeshPro.text = "UXTextMeshPro";
            rectTransform.anchoredPosition = Vector2.zero;
            rectTransform.localPosition = Vector3.zero;
            rectTransform.pivot = new Vector2(0.5f, 0.5f);
            rectTransform.localScale = Vector3.one;
            Selection.activeGameObject = gameObject;
        }

        [MenuItem("GameObject/UX/RecyclerView", false, -1)]
        private static void CreateUxRecyclerView()
        {
            GameObject selectionObject = Selection.activeGameObject;
            if (selectionObject == null) return;
            const string prefabPath = "Packages/com.alicizax.unity.ui.extension/Editor/RecyclerView/Res/ScrollView.prefab";
            GameObject prefab = AssetDatabase.LoadAssetAtPath<GameObject>(prefabPath);
            GameObject instance = (GameObject)PrefabUtility.InstantiatePrefab(prefab, selectionObject.transform);
            PrefabUtility.UnpackPrefabInstance(instance, PrefabUnpackMode.Completely, InteractionMode.UserAction);
            Selection.activeGameObject = instance;
        }
    }
}
