1- /**
1+ /*
22 * Copyright (c) 2015-present, Jim Kynde Meyer
33 * All rights reserved.
44 *
1010import com .intellij .ide .actions .CreateFileFromTemplateAction ;
1111import com .intellij .ide .actions .CreateFileFromTemplateDialog ;
1212import com .intellij .lang .jsgraphql .icons .JSGraphQLIcons ;
13+ import com .intellij .lang .jsgraphql .ide .project .graphqlconfig .GraphQLConfigManager ;
14+ import com .intellij .lang .jsgraphql .ide .project .graphqlconfig .model .GraphQLConfigData ;
15+ import com .intellij .openapi .actionSystem .CommonDataKeys ;
1316import com .intellij .openapi .actionSystem .DataContext ;
14- import com .intellij .openapi .actionSystem .LangDataKeys ;
15- import com .intellij .openapi .module .Module ;
1617import com .intellij .openapi .project .DumbAware ;
1718import com .intellij .openapi .project .Project ;
19+ import com .intellij .openapi .vfs .VirtualFile ;
1820import com .intellij .psi .PsiDirectory ;
1921
2022public class JSGraphQLEndpointNewFileAction extends CreateFileFromTemplateAction implements DumbAware {
@@ -28,8 +30,22 @@ protected boolean isAvailable(DataContext dataContext) {
2830 if (!super .isAvailable (dataContext )) {
2931 return false ;
3032 }
31- final Module module = LangDataKeys .MODULE .getData (dataContext );
32- return module != null ;
33+
34+ final Project myProject = CommonDataKeys .PROJECT .getData (dataContext );
35+ if (myProject != null ) {
36+ final VirtualFile virtualFile = CommonDataKeys .VIRTUAL_FILE .getData (dataContext );
37+ if (virtualFile != null ) {
38+ final GraphQLConfigManager configManager = GraphQLConfigManager .getService (myProject );
39+ final VirtualFile configFile = configManager .getClosestConfigFile (virtualFile );
40+ if (configFile != null ) {
41+ final GraphQLConfigData configData = configManager .getConfigurationsByPath ().get (configFile .getParent ());
42+ if (configData != null && configData .extensions != null ) {
43+ return configData .extensions .get (GraphQLConfigManager .ENDPOINT_LANGUAGE_EXTENSION ) != null ;
44+ }
45+ }
46+ }
47+ }
48+ return false ;
3349 }
3450
3551 @ Override
0 commit comments